#Caché

30 Followers · 4.6K Posts

  

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

Documentation.

Article Danny Wijnschenk · Jul 19, 2022 4m read

Mixing Object syntax with SQL is one of the nice features in Object Script. But in one case, it gave strange results, so I decided to isolate the case and describe it here.

Let's say you need to write a classmethod that updates a single property on disk. Usually, i would write that using SQL like this :

ClassMethod ActivateSQL(customerId) as %Status
{
   &sql(Update Test.Customer Set Active=1 Where ID=:customerId)
   If SQLCODE'=0 {
      Set exception = ##class(%Exception.SQL).CreateFromSQLCODE(SQLCODE, $Get(%msg))
      Quit exception.
5
0 466
Question MARK PONGONIS · Jul 15, 2022

Is there a way to perform an %Prepare()/%Execute() that will wait until the record being queried is unlocked by another process? 

Ex: 

Process 1 - is opening record, updating, then saving. NOTE: this is using embedded SQL

&sql(SELECTIDINTOs

Process 2 - is querying the same record while Process 1 has it open. Result is nothing is returned and %SQLCODE is 0

##class
3
0 329
Question Keith McCauley · May 20, 2022

I want to display to the user on their Zen page how much time is left before their session times out.

I know I can set the %session.AppTimeout to a particular value (or manage this in the Web Application) and I know I can retrieve this value from the %session object. I also know that I can set an event handler to do something when the session has timed out but I cannot find any way to determine how long before the session ends via the application timeout so that I can keep the user informed.

3
1 590
Article Rizmaan Marikar · Dec 25, 2021 13m read

There are many ways to generate excel files using Intersystems, some of them are ZEN reports, IRIS reports ( Logi reports or formally known as JReports), or we can use third party Java libraries, the possibilities are almost endless.

But, what if you want to create a simple spreadsheet with only Caché ObjectScript?

15
10 2363
Question Roger Andre · Jul 7, 2022

Hi, can anyone tell me how I should do the parameter calculation below in the MSM / MUMPS of Intersystems? STAP SIZE
STACK SIZE
MAX MODIFIED BUFFERS
DISK I / O RATE
SLICE COMMANDS
PARTITION SIZE
BUFFER POOL SIZE
NUMBER OF MUSERVER PROCESSES We have a rolling MSM that suffers from hangovers from the Activate service and the Workstation service several times a day and we are unable to determine if those hangouts are related to the number of users or overloading the system.

3
0 465
Question Dominic Chui · Jul 14, 2022

Let's say I have two lists of connected data where elements of listTwo only make sense if given an item of listOne as context:

listOne = ["A", "B", "C"]

listTwo = ["x", "y", "z"]

Tuples like ("A", "y") and ("C, "x") make sense, but "A" or "x" by themselves don't. I would like to pass in a list of such tuples into a method and have it handle each tuple in the list. So what would be the best way to format them given that ObjectScript does not have specialized tuples? Would it be nested $LISTBUILD lists or something else?

1
0 394
Question Con Skordis · Jun 24, 2022

What is the correct way to specify rowspan and colspan in a ZEN PDF report using <Item> <Caption> 

I am specifying rowspan in the <Caption> tag after the <Item> but it's not working.

1
0 426
Article Katherine Reid · Aug 26, 2016 2m read

Question:

What version of Caché supports TLS v1.2? 

Answer:

Caché 2015.2 announced support for TLS v1.1 and v1.2.  In this version, the SSL/TLS configuration page provides checkboxes for TLS v1.1 and v1.2, which allows the versions to be configured individually.  This allows sites to, for example, require TLS v1.2 only.

Additionally, some earlier versions of Caché provide undocumented support for TLS v1.1 and v1.2, specifically Caché 2014.1.3 and above and 2015.1, on Windows, Linux and Unix.

Here’s why:  Caché uses the openssl library for SSL/TLS.  TLS v1.1 and v1.

1
0 2483
Question Roger Andre · Jun 21, 2022

Hello, today we had another freeze in the system. It was close to 09:55. Logs follow for analysis. Following are MSM/MUMPS logs with about 1050 active connections at the time of the freeze. Does anyone see something different?

4
0 684
Question Andy Stobirski · Jun 30, 2022

I have a table with a Varchar(max) column that I have created via the HealthShare SQL portal, and I see that in it's underlying class that column corresponds to a  %Stream.GlobalCharacter

When I try to do a text search on that column (referenced as cd.Code in the example below) I get an error

select * 
from DevTools_CodeAnalysis_tables.Code cd
inner join DevTools_CodeAnalysis_tables.MethodData mtd
on charindex( mtd.qualifiedRef,  cd.Code) > 0

It produces the error

 Scalar function CHARINDEX (arg2) not supported for stream fields

How do I search it?
 

1
0 413
Article Eduard Lebedyuk · Mar 13, 2018 4m read

In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:

  • Git 101
  • Git flow (development process)
  • GitLab installation
  • GitLab Workflow
  • Continuous Delivery
  • GitLab installation and configuration
  • GitLab CI/CD

In the first article, we covered Git basics, why a high-level understanding of Git concepts is important for modern software development, and how Git can be used to develop software.

In the second article, we covered GitLab Workflow - a complete software life cycle process and Continuous Delivery.

I this article we'll discuss:

  • GitLab installation and configuration
  • Connecting your environments to GitLab
2
2 2233
Article Fabio Goncalves · Dec 12, 2016 3m read

Suppose you have developed your own web app with InterSystems technologies stack and now want to perform a captcha validation on the client side in order to determine whether or not the user is human and make it safer. There are some modern frameworks to address the captcha issue, however most part of them needs internet access to generate codes and sometimes are complex to implement. Take this as basic example considering that image recognition has gotten too good. That's why you nowadays you tend to see more pattern recognition captchas than mere reading ones. (I.e.

9
1 1713
Question David Hockenbroch · Jun 8, 2022

Is there a way for us to restrict user's ODBC permissions based on what program they're running on a client?

For example, we have some older Windows apps (.exe) that are a regular part of our software package which require the user to be able to select, insert, update, and delete. Some of our users are also using other third-party apps to connect (mostly reporting tools) but we only want them to be able to select unless we've approved the exe. Is there a way to do that?

These are not applications that were developed using CacheDirect.

6
0 475
Announcement Laurel James (GJS) · Jun 16, 2022

Only a few days to go until the Global Summit! George James Software will be on hand to talk about any projects you may have on the horizon, such as application development, data and platform migration, system integration, training, and support – we can work with you to find practical and maintainable solutions that support the growing needs of your organization. 

We're also running a User Group Session on Wednesday, July 22nd at 12pm. It's a great opportunity to find out more about our tools and ask us (and current users!) any questions.

0
0 241
Question John Hotalen · May 25, 2022

Hello to all my fellow Cache Experts.   Quick question about the MONLBL output that identifies performance issues.  There is a metric value output by MONLBL called "Obtain [NEW] connection to Cache".   Supposedly that metric captures the time taken between the request reaching the CSP Gateway and a connection to Cache being reserved for the purpose of servicing the request.   All of that being said, if that metric value is high for many requests, such as 19.x seconds, then can anyone tell me what that metric really means and how to improve (lower) the new connection to Cache time.

3
0 378
Question Adrian Izadpanah · Jun 6, 2022

Hi All,

I am taking a look at some legacy coding as it seems to be generating an error when processing the messaging. The message being process contains a PDF which we are transforming into a stream and sending to another system.

I have noticed this issue only occurs with PDFS that are roughly 2800kbs in size or above. All other PDFS process fine. 

The error that it is generating is proDOCMAN BPL Error: 5002 : Cache error: <MAXSTRING>zS2+72^pacDOCMAN.proDOCMAN.Thread1.1

proDOCMAN being the name of the process.

8
0 421
Question Asel Asel · Jun 8, 2022

Hello! Need help...
Please tell a newbie how to connect to a remote database.
OS Centos 7, WebServer type Apache, version cache - cache-2014.1.5.851.1-lnxrhx64,
license:
[ConfigFile]
FileType=License 5.1

[License]
LicenseCapacity=Cache 5.0 Entree - Concurrent Users for Intel (Linux):40, Multi-Server
CustomerName=...
OrderNumber=2010...
ExpirationDate=4/26/2036
AuthorizationKey=...
MachineID=

Tried to connect to a remote database through the ECP server. Writes that - The Cache license does not support ECP. I understand that there must be another cache.

15
1 582
Announcement Laurel James (GJS) · Jun 13, 2022

We're looking forward to seeing everyone at the InterSystems Global Summit next week!
George James Software will be there offering demos of our Deltanji source control. It has been proven to improve efficiencies within for individual developers, larger organizations, and everyone in between by bringing clarity to the development of your system. It encourages configuration management, versioning, and process control to improve the quality of your code.
If you would like to find out more, look out for us in the Partner Pavilion or book in for our User Group session during lunch on Wednesday, June 22nd. Email laurelj@georgejames.com to let us know you'll be there.

0
0 305
Article Tani Frankel · May 6, 2020 2m read

While reviewing our documentation for our ^pButtons (in IRIS renamed as ^SystemPerformance) performance monitoring utility, a customer told me: "I understand all of this, but I wish it could be simpler… easier to define profiles, manage them etc.".

After this session I thought it would be a nice exercise to try and provide some easier human interface for this.

The first step in this was to wrap a class-based API to the existing pButtons routine.

I was also able to add some more "features" like showing what profiles are currently running, their time remaining to run, previously running processes and more.

The next step was to add on top of this API, a REST API class.

With this artifact (a pButtons REST API) in hand, one can go ahead and build a modern UI on top of that.

For example -

15
4 1399
Question Markus Böckmann · Jun 8, 2022

Hi guys,

has anyone done a simple angular searchbar with a REST API on Caché in the back?

I've done this Let's write an Angular 1.x app with a Caché REST backend here in the community and it

works fine for me.

The REST in Caché is already developed but im hanging at the searchbar in Angular, don't know how to solve this.

Has somebody an example to help me out?

Any help would be appreciated.

0
1 336