#Caché

30 Followers · 4.6K Posts

  

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

Documentation.

Question David Marinkovic · Apr 23, 2024

Hello everyone,

I have an issue related to Visual Studio Code and its InterSystems extension when exporting routines from the database to the file system.

The code entered via the terminal editor is encoded in DOS code page 437, but when I export it to my file system, even if I set the file opening to DOS CP 437, the accented characters which are two bytes long cause problems.

Regardless of the test settings I've tried, the only one that retains meaning is CP 437, but I get an unnecessary character preceding my accented characters.

0
0 284
Question Igor Barboza · Apr 20, 2024

Hello everyone, I need some help. 

I have to send some events for a government WebService that I already imported the WSDL and XSD's and It worked fine and I'm able to build the message and connect into the service, but It has been rejected with the message that the XML is wrong and the only diference between the Caché SOAP message to all the examples that the government gave us is the header:
 

This is how the Government is expecting the message:

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
	<soap12:Body>
		<cteDadosMsg
			xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4">
			-----------------Dynamic XML Body------------------
		</cteDadosMsg>
	</soap12:Body>
</soap12:Envelope>
10
0 340
Question Maarten Van den Vreken · Apr 17, 2024

Hi all,

I was wondering if there is a way to modify the results you get in the code assist in Visual Studio Code. Ideally even per class or package.

For example: the code below is for a custom component of a framework. From all the options listed I'm only interested in my own property "Title" and I don't want to see any %-methods or auto-generated methods like "TitleSet" and "TitleGet".

I have been looking at the %Api.Atelier classes, but it seems that it's only calling a list of deprecated methods when opening this list.

3
0 253
Question Rahul Raj · Apr 18, 2024

Hi! I am planning to move my Arbiter from a Unix server to a container(again on linux). To do this, I need the ISCAgent tar.gz file to configure Arbiter for our mirrored servers. I have tried searching for it on the Intersystems help forums but couldn't find it. Is it possible for someone to redirect me to the correct website to download it?

Thank you in advance!!

2
0 407
Article Megumi Kakechi · Apr 18, 2024 1m read

InterSystems FAQ rubric

When you run a routine in the terminal and an error occurs in the program, if you have not set the error trap properly, the program will enter debug mode as shown below.

USER>do^error1

From this state, enter the Quit command to return to the state before the routine was started.

USER 2

If a transaction is being processed within the routine where the error occurred, a prompt similar to the one below will appear.

0
1 284
Question Paul Coviello · Mar 14, 2024

we are looking at replacing our VMS system with Linux :-( yes a sad day!

now the question has become should we go with Intel or AMD.  personally I think Intel is the way to go for several reasons.

has anyone seen or heard of an AMD being slower or there is a definite performance of one over the other.

thanks for your feedback.

Paul

 first our current environment which will be copied over to the new platform

Cache 2015.2 yes we are stuck here due to Vendor and no further support. with the upgrade we will be updating to a newer version of Cache and eventually IRIS when the vendor has certified it.

6
0 432
Question Julian Matthews · Apr 18, 2024

Hi everyone.

I have a function that may end up being called from a number of transformations at the same time, and within the function there's some Embedded SQL to first check if a local table has an entry, and then adds the entry if it doesn't exist.

To prevent a race condition where the function is called by two transformations and they both end up attempting to insert the same value, I'm looking to use the table hint "WITH TABLOCK" on the insert, but this seems to be failing the syntax checks within vscode.

Are table hints supported with embedded sql?

4
0 211
Question Anna Golitsyna · Sep 13, 2023

I have an odd binary result exporting a specific routine via Studio, Export. Below is the beginning. The seemingly same routine in a different directory is exported fine, regular human readable code. Inspecting ^ROUTINE and ^rIndex did not give me any clues. Any insights?

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25" zv="Cache for Windows (x86-64) 2017.2.1 (Build 801U)" ts="2023-09-13 10:49:52">
<RoutineBase64 name="Utils" type="INT" languagemode="0" timestamp="66728,61062.

4
0 317
Discussion ALEX VY. · Apr 13, 2024

Dear All ,  As per the title, 

I was tasked to upgrade an old legacy system to run on Windows 11. 

I am having a problem with Cache mostly.

I have the version: VERSION 5.0.14 , BUILD 5702 , OBJECTS 5.0.5702.0 I would like to know if there is a way to run it on windows 11 somehow.

I know I am asking for a LOT.  Unfortunately, the provider of the suit is long gone, and I can't keep it on windows XP.  Let me know if there is an alternative way to get it up to date even with the lowest / more recent version. 
Thank you in advance for your time.

13
0 361
Article Seisuke Nakahashi · Jan 10, 2024 5m read

[Background]

InterSystems IRIS family has a nice utility ^SystemPerformance (as known as ^pButtons in Caché and Ensemble) which outputs the database performance information into a readable HTML file. When you run ^SystemPerformance on IRIS for Windows, a HTML file is created where both our own performance log mgstat and Windows performance log are included.

2
3 864
Article Hiroshi Sato · Apr 11, 2024 2m read

InterSystems FAQ rubric

If the journal file is too large to be searched or filtered using the Management Portal, you can refer to it using the following two methods.

① How to use the ^JRNDUMP utility
② How to reference it in a program

================================================== ========== 

① Using the ^JRNDUMP utility. For example, if you want to select all records in the journal file that include the global reference ^ABC, do the following:

*Please execute all commands below in the %SYS namespace.

DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",1)

0
1 533
Question Stephane Devin · Apr 10, 2024

Hi,

I am using embeded python to utilize some pythonic library but i got a problem on my hand.
One of the python function i am using return multiple values

in python you would do something like that :

val1, val2, val3, = function(params)

In COS I got something like that :

lib = ##class(%SYS.Python).Import("lib")
val1 = lib.function(params)

And I don't know how to get the second and third values.
Is there a way to get them?

5
1 315
Article Davi Massaru Teixeira Muta · Apr 10, 2024 3m read

If you have system tables implementing the "VERSIONPROPERTY" functionality, you may encounter error 5800. This article explains how this error occurs and provides solutions to resolve the issue.

When version checking is implemented, the property specified by VERSIONPROPERTY is automatically incremented each time an instance of the class is updated (either by objects or SQL).

For example:

ClassMethod RunVersionChange() As %Status
{
    Set sample = ##class(dado.TblSample).%OpenId("42")
    Write !,"VERSIONPROPERTY value: "_ sample.VersionCheck
    
    Do sample.StatusSetObjectId("AL")
    DO sample.%Save()
    WRITE !,!,"SAVED",!

    Write !,"VERSIONPROPERTY value: "_ sample.VersionCheck
}
0
0 333
Question Kurro Lopez · Apr 9, 2024

Hi community,

I'm calling to a API that it is retrieving the content of a file as Content of response. I'm catching the binary but I need to convert this Stream to a Base64 string.

I'm trying to convert a %Stream.GlobaBinary to a Base64 string using the following code, but it doesn't work.

doset""

The content is not correctly converted to Base64

6
0 738
Question Colin Brough · Apr 8, 2024

We are writing a custom Business Operation to interact with a downstream SOAP web-service. Classes for the SOAP operation were originally generated using the SOAP Wizard, then modified. This is functioning OK, but we'd now like to set the ReplyCodeActions setting on the operation and are struggling to make it visible via the management portal. How can we achieve this?

The classes are structured like this:

  • The Operation uses class TNHS.SOAPclassExtra
  • TNHS.SOAPclassExtra  Extends TNHS.SOAPclass
  • TNHS.SOAPclass  Extends Ens.BusinessOperation
  • Ens.
1
0 268
Question Julian Matthews · Apr 8, 2024

Hi everyone.

Is there a sensible approach to having a lookup table in Namespace A, and then accessing this from Namespaces B, C, D (etc)?

I'm trying to avoid creating a Global mapping of the lookup table global (^Ens.LookupTable) as I fear that it would then link all other lookups in that global and lead to some unexpected behaviour, but would be open to trying something in this realm if it's the best option.

Another approach I have considered is creating a custom lookup function that is run from the secondary namespaces that does some namespace hopping, but it feels messy.

4
0 471
Question Stefan Cronje · Apr 5, 2024

Hi all,

I have a situation where I am writing to global from different processes - let's call it an Event Queue.
There is then a different process that uses $order to read through the data - the PubSub processing BP.

Sometimes the writing of this global will form part of a transaction that also insert data into other tables, using tstart and tcommit.
If there is some issue, it will roll back, and the entry written to the global will also roll back.

6
0 262
Question Amiram Kasos · Feb 8, 2024

Hi,

I am trying to connect to another server using  %Net.HttpRequest.

I keep getting this error  : SSL23_GET_SERVER_HELLO:unsupported protocol.

My guess is that the site I am reaching for uses TLS1.3 which is not supported in 2016, But I cant right now ask my client to upgrade.

Is it possible to override this ? install some kind of a patch or a more recent version of openssl on the server ?

Thanks

Amiram

2
0 249
Article Hiroshi Sato · Apr 4, 2024 1m read

InterSystems FAQ rubric

The Web/CSP Gateway management page is typically configured so that it cannot be accessed from client machines.

To access from any client, do the following:

  1. Launch a browser from a system with access to the Web/CSP Gateway management page and access the Management Portal.
  2. Under Management Portal > System Administration > Configuration > click CSP Gateway Management.
  3. Click Default Parameters that appear in the left pane of the page that appears.
  4. Enter *.*.*.* in the system management machine and press the Save Settings button.
0
0 351
Article Daniel Aguilar · Mar 22, 2024 3m read

Hi Community!

Do you usually work with automated tasks? Then let me share with you a pair of tips ;-)

Tip 1: How to know when my automated task will end (approximately)

Do you have an automated task that is running but you are not sure when it will end and you are at the crossroad of take the decision to stop it or wait and you are not sure if could be better wait for 5 o 10 minutes?

Here you are a tip to check when your task will finish (approximately).

4
2 377
Announcement Rob Tweed · Sep 28, 2022

I'd like to announce the release of something really rather interesting - revolutionary in fact.  That may sound like hyperbole, but I don't think you'll have seen anything quite like this, or even thought it possible!

We've pushed out a new JavaScript/Node.js module named glsdb which you can read all about here in detail:

https://github.com/robtweed/glsdb

However, for the purposes of this announcement here, I just want to focus on one part of glsdb: its APIs that abstract IRIS (or Cache) Classes as equivalent JavaScript Objects.

8
1 515
Question JASON PARKER · Mar 23, 2024

Hello everyone,

I have a Cache class with just 2 fields

Class JASON.BikeDB Extends (%Persistent, %Populate)
Property Make As %String [ Required ]; /// Model of the Motorcycle
Property Model As %String [ Required ];

I also have another class with several ClassMethods, just showing you 1 here

Class JASON.DataBase Extends %Persistent
{ ClassMethod SaveNew(Make As %String, Model As %String)
{
Set obj=##class(JASON.BikeDB).%New()
Set obj.Make=Make
Set obj.Model=Model
Set sve=obj.

6
0 403
Question Richard Rayburn · Mar 22, 2024

In cache studio there are features, dialog boxes, that help map data from a global to class properties.
I have used %CacheSQLStorage quit a bit, or have in the past, to map globals to classes.

I haven't been able to find a similar feature in VisualStudio.
Do I need to upgrade to IRIS to be able to use VisualStudio to map global properties to classes?

Thanks for your time,
Richard

2
0 244
Article Hiroshi Sato · Mar 21, 2024 2m read

InterSystems FAQ rubric

Properties defined in list collections (Property XXX As list of %String;) can be manipulated using SQL functions: $LISTBUILD(), $LISTFROMSTRING().

For each SQL function, please refer to the document page below.

InterSystems SQL Reference - $LISTBUILD() [IRIS]
IRIS SQL Reference - $LISTFROMSTRING() [IRIS]
Caché SQL Reference - $LISTBUILD()
Caché SQL Reference - $LISTFROMSTRING()

/// Class definition exampleClassExtends

An example of SQL statement execution is as follows. 

$system

When accessed in ODBC format, it can be handled as comma-delimited data.

1
1 351
Question amine benchaou · Mar 21, 2024

Hi Allen,

A partner have decided to change the algorithms that were used to connect on it's SFTP, but our version of libssh2 don't match with the list of it's HOSTKEYS algorithms.  

If i update the library with the last version without to be sure that it includes the old algorithms, i risk to break the connection for other cases.

all suggestions are welcome. Thx

KR,

Amine

1
0 1368
Question Token Ibragimov · Mar 7, 2024

Hello!

How I can send Synchronous request ?

For example when I cannot call another process until my first business process do not finish.

ClassMethodset//Dont start until first process finish
4
0 296
Article Hiroshi Sato · Mar 7, 2024 1m read

InterSystems FAQ rubric

You can use the %IndexBuilder class to perform index rebuilding using multiple processes.

Here is an example for the purpose of defining the standard index HomeStateIdx for the Home_State (state information of contact address) column of Sample.Person.

The steps are as follows:

1. Hide the index name to be added/rebuilt from the query optimizer.

>write$system

2. Add %IndexBuilder to the rightmost superclass of the class definition that defines the new index.

3. Register the index name to be rebuilt in the INDEXBUILDERFILTER

0
1 346