#Databases

8 Followers · 371 Posts

InterSystems Caché database is a file where all the data, application scripts, and users, roles and security configurations are stored. Typically the name of the file is cache.dat.

Documentation.

Article Maks Atygaev · Jul 18, 2017 7m read

MonCaché — MongoDB API implementation based on InterSystems Caché

Disclaimer: This article reflects author's private opinion and has no relation to the official position of InterSystems.

IDEA

The idea of the project is to implement basic MongoDB (v2.4.9) API features for searching, saving, updating and deleting documents in a way that will allow the use of InterSystems Caché instead of MongoDB without changing the code on the client side.

MOTIVATION

14
0 1957
Article Athanassios Hatzis · Feb 16, 2017 4m read

Hi,

I would like to draw your attention on a recently published article, titled "A Quick Guide on How to Prevail in the Graph Database Arena", that has been posted also at LinkedIn. Intersystems Caché has been referenced several times. In the "Multi-model Database Engine" section of this article, there is a quick description of Caché  as an

object database with relational access, integrated support for JSON documents and a multidimensional key-value storage mechanism that can be easily extended to cover Graph data model
1
1 1307
Question Laura Cavanaugh · Jul 14, 2017

I'm trying to recreate a smaller copy of our DEV machine on a sandbox instance.  I installed a new instance, and thought it would be a good idea to copy over a few cache.dat files from the critical namespaces (but not all of them), and start from there.

However, I can't compile any UI files in my new instance because I'm getting a <PROTECT> error on the %qCacheMsg global -- for any element that displays text (i.e. the first <label> that's encountered) the generated code is trying to get text from the global  ^%qCacheMsg("%Utility","en",node) = text -- from a node that doesn't exist.

1
0 483
Question Russell Knight · Jul 12, 2017

Greetings,

How do I organize a wildcard search with respect to a database search?

Example of what I am trying to do:  s x=$o(^G("ABC","A*",x))

Trying to navigate through the ^G global for all occurrences of "ABC", and "A*" ("A"+wildcard) but I am new to M and don't know positively how to do this.  Perhaps I don't use an "*" at all, rather; another convention altogether.

Please advise.

Thanks in advance for everyone's assistance.

2
0 631
Question Greg Arnold · May 30, 2017

I need to execute a single csession command which calls a multi-parameter routine, such as ^SECURITY. This will be to do things such as create databases, resources, etc. (see below). When I run the command all at once, I get a PARAMETER error.

[user@host ~]$ csession INSTANCENAME -U %SYS "^SECURITY(4,1,\"testresource\")"
<PARAMETER>SECURITY^SECURITY
%SYS 2d0>do ^SECURITY
2
0 865
Question Confused Developer · May 22, 2017

We have multiple server and multiple namespace. 

I have a script having sql query  which fetch data from current  namespace of a server. 

If I want to run the same query on different server to fetch data, but I want to run that script on just one server for all server. 

Please let me know how can I proceed. 

2
0 749
Article Michael Brady · May 4, 2017 4m read

Hi Everyone,

Link to webinar recording: https://learning.intersystems.com/course/view.php?id=623

Thank you for your interest in this webinar!

Please submit questions about the content of the webinar as comments below this article.

The webinar covers two topics: monitoring message activity and volume and monitoring disk space. I summarize and motivate the topics in the following two sections. The information in this webinar and post applies to the Ensemble, Health Connect, and HealthShare products. For simplicity, I am only going to refer to Ensemble in this post.

2
1 677
Question Samuel Dujardin · Apr 26, 2017

Hi Everybody,

I'm trying to restore database to a 2016.2.2.853 caché version but i've some problems ...

Into my backup file, i've 6 namespaces. After use the Do ^DBREST and configure all namespace into the portal, I can only reach 2 of 6.

when I write zn "blabla" into the terminal, i've got this error message :

ZN "blabla"
^
<DIRECTORY> *r:\data\blabla


Of course, Database and namespace are correctly define.


I've try this on a previous version of caché (2015.2.2.811) and it's working fine.
So, do you already got this kind of issue with your caché server ?

Tanks a lot for your help!

Sam

3
0 1252
Question Mack Altman · Jan 6, 2017

Currently, we have an application running in one namespace ("Database B") that has globals and routines mapped to another database ("Database A"). After enforcing clean up on Database A, we found that 90% of the disk is free. We would like to compact Database A and release the unused space. However, we are running OpenVMS, which seems to be the issue.

For databases consisting of only globals, we are able to use ^GBLOCKCOPY; however, we need to ensure that the routines and mappings are also copied.

What would be the best recommended way to do this?

8
0 1259
Question Mack Altman · Jan 21, 2017

Can someone direct me to where in the documentation we can find how consumption may be calculated for global storage?

Caché Version 2010.1
Operating System HP OpenVMS 8.4

EDIT: After receiving some responses, it seems I was unclear in my initial inquiry. I am looking to determine our rate of consumption of storage; however, I am having some difficulty in doing that.

While utilizing ^%GSIZE, which is used by the %GlobalEdit class, the results appeared odd. I have provided my results below, which illustrate the global structure on the left and the usage indicated by ^%GSIZE on the right.

6
0 900
Question Mack Altman · Dec 27, 2016

Currently, namespace Alpha is configured to use database AlphaDB as its global database. How would we go about having namespace Alpha configured to use database AlphaDB for its global database except where global ^Customers(CustomerId) has a CustomerId greater than 10M, which we would like to have it redirected to database BetaDB.

In other words, ^|"AlphaDB"|Customers contains all customers between 1 and 10,000,000; and ^|"BetaDB"|Customers contains all customers greater than 10,000,000. Any help would be appreciated.

4
0 570
Question Laura Cavanaugh · Dec 6, 2016

Hello.  When you export and then import a table of data, is the import smart enough to figure out if a row already exists in the new namespace, and if so update the row rather than just save/add the row?

For example, we have a table in DEV, and the same table in QA.  The DEV table has more fields than QA.  When we moved up the class, the field definitions went with the table into QA, so now the table definition is the same in both.

2
0 605
Question Mack Altman · Dec 2, 2016

We don't often use SQL within our org, which is mostly due to the performance issue we experience due to the quantity of data we are reviewing.

Aside from the standard performance measures for non-Caché databases, are there any recommended approaches when querying large tables?

The table would have roughly 50M records, but there are not a finite amount of sub-nodes.

7
0 1093
InterSystems Official RB Omo · Nov 22, 2016 2m read

November 22, 2016 – Alert: Database Integrity on UNIX® and Linux Platforms

InterSystems has corrected a defect that may, in rare circumstances, result in database degradation on UNIX and Linux platforms.

This defect affects Caché, Ensemble, and HealthShare distributions beginning with Caché version 2012.1. It is only a possible risk on UNIX and Linux platforms that are using asynchronous I/O for database writes. The following table specifies if asynchronous I/O is always on or optional for the affected platforms and releases:

0
0 757
Question Scott Beeson · Nov 18, 2016

I get this on some queries in some namespaces.  For instance, this query:

SELECT TOP 10 SessionId, datediff(s,min(TimeCreated),max(TimeCreated)) as ResponseTime
FROM ens.messageheader
GROUP BY SessionId
ORDER BY ResponseTime DESC

It works fine in HSBUS but in HSREG it throws the error.

Server closed communication device

Does anyone know what would cause this? Would it log something more useful somewhere?

7
0 1157
Question GUILHERME CRUZ DA CUNHA · Nov 10, 2016

Hello, I would like to know if CACHE has any limitations on uploading files.
Why am I asking this, why am I going through a problem here.
What happens is that when uploading files or images that are larger than 2.7 MB CACHE is limiting the size to 2.7 MB, any file larger than that is saved corrupted.
Already at the time of uploading the file or image, CACHE is limiting the size of the file to 2.6 MB.

3
0 1103
Article Jorma Sinnamo · Nov 8, 2016 4m read

This is the first article in a series discussing how to regain disk space from Caché databases at the operating system level. This introductory article discusses Caché database growth and gives an overview of various methods you can use to return unused disk space that is allocated to database files back to the file system. But before we talk about returning space to the file system, let’s first review how does it get allocated in the first place.

0
0 2014
Question Heikki Koivulehto · Oct 26, 2016

We are finally planning to migrate some ancient Caché applications that are run on Caché 5.0.21 to a new server with Caché 2016.2.0 or so.

I wonder if we could use Shadowing between those to keep the data on the new server up to date?

We would copy the Caché backup from the old environment to the new and do a RESTORE there and then start shadowing.

I know than 5.0.21 is no more officially supported by ISC.

5
0 821
Article Sylvain Guilbaud · Oct 19, 2016 7m read

Context: 

mirrored configuration with one primary member and one async member (without failover/backup member)

Purpose:

replace the CACHE.DAT of a mirrored database on the primary member.

 Steps to follow:

  1. on the PRIMARY
    1. remove the database to replace from the mirror
    2. dismount the database
    3. copy the new database
    4. mount the database
    5. add the database to the mirror
    6. backup the database (external backup)
  2. on the ASYNC
    1. remove the database to replace from the mirror
    2. dismount the database
    3. restore the new database backup from the PRIMARY
    4. mount the database
    5. activate database
    6. catch up database
3
0 1080
Article Dmitry Maslennikov · Oct 11, 2016 5m read

This text is a continuation of my article where I explained the structure a Caché database. In this article, I described the types of blocks, connections between them and their relation to globals. The article was purely theoretical. I made a project that helps visualize the block tree - and this article will explain how it works in great detail.

3
1 2251
Article Bob Binstock · Sep 7, 2016 6m read
Mirror Outage ProceduresCaché mirroring is a reliable, inexpensive and easy to implement high availability and disaster recovery solution for Caché and Ensemble-based applications. This article provides an overview of recommended procedures for dealing with a variety of planned and unplanned mirror outage scenarios. (For detailed information about mirroring and a wide range of mirror-related procedures, see Mirroring 101.)A Caché mirror typically consists of two Caché instances on physically independent hosts, called failover members. (A mirror can also be configured with a single failover
0
1 1227