#Databases

8 Followers · 373 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.

Question Kumaresh Ram · Sep 10, 2017

In which global cache class codes are storing in cache DB?

For example, Routine codes are storing in ^ROUTINE global.

situation: Need to read line by line and need to replace one string to another string in class files(.cls file) using programming.

Need to replace Property type in class files using programming i mean via programming to edit the class files

4
0 741
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

Perhaps, if we take an interface based on MongoDB and use InterSystems Caché for data storage, we may see a performance boost.

14
0 1961
Article Athanassios Hatzis · Sep 12, 2017 3m read


Introduction

Have you noticed that what ever the model and data structure in databases we cannot escape from the fundamental principle of managing data allocation space with references, i.e. pointer based logic, memory addressing ? Isn’t this the fundamental mechanism of programming languages too ? The problem I see with all these modern NoSQL databases, especially graph databases is that they provide a higher level abstraction for the end developer but they hide and lock completely the access to the low level storage and retrieval mechanism including indexes.

5
0 647
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 490
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 633
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 752
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 679
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 1263
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 1266
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 909
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 578
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.

We need to export the data from DEV and import it into QA, but file each row in QA as an existing row, and just update its data.

2
0 609
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 1097
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:

Platform

Versions 2012.1 to 2015.1

Version 2015.

0
0 760
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 1169
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 1111
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.

Caché databases always have the name CACHE.

0
0 2024
Question David Little · Oct 31, 2016

Hey guys

We have a need to mount remote databases using ECP, but with the Application servers mounting some of the remote databases as Read Only.  The Data servers will keep them R+W as normal.

From what I can gather this isn't possible using a "Mount Read Only" option, it looks like ECP just inherits the Database servers settings.  My reading seems to require roles/access/permissions to enforce Read Only on these remote mounts.  Does anyone have an easy guide/cheat sheet to set up read only ECP Application server read-only mounting using roles/permissions?

2
0 923
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 830