#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Article Mauro Aguirre · May 11, 2023 13m read

Several steps should be done in order to secure the connection through xDBC clients to an IRIS Server instance using TLS. Most of the information can be obtained from the documentation about TLS on IRIS here, about configuring the security layer for encrypted connections. In the next paragraphs we will cover an step-by-step guide on how to configure and test the connection using SQL Clients apps using ODBC and JDBC.

0
2 1232
Question Anna Golitsyna · Apr 13, 2023

Is there any ObjectScript or a basic function that takes a string and separates it into words + punctuation/spaces array/list? Just not to reinvent the wheel. Say, process "It is a test, after all" into "It", space, "is", space, "a", space, "test", ", ", "after", space, "all". Or something to that effect.

9
0 448
Article Eduard Lebedyuk · Apr 17, 2017 4m read

In this article I'll cover testing and debugging Caché web applications (mainly REST) with external tools. Second part covers Caché tools.

You wrote server-side code and want to test it from a client or already have a web application and it doesn't work. Here comes debugging. In this article I'll go from the easiest to use tools (browser) to the most comprehensive (packet analyzer), but first let's talk a little about most common errors and how they can be resolved.

2
5 3893
Question Vinay Purohit · Apr 28, 2023

Hi,

I have created two CSP pages. One is the Login page and the other page show the patient details from the database.

I want to set the session dynamically just after the successful login and after login it will be redirected to the Patient Details page. If session timeout, then wants to redirect back to the login page.

Thanks in advance.

Vinay Purohit

1
0 400
Question Sai Vusirikapally · Apr 28, 2021

Hi everyone,

I'm currently developing a TCP inbound Service to read some XML sent from a TCP Operation that uses EnsLib.TCP.CountedOutboundAdapter.

1) I have tried EnsLib.TCP.Inbound adapter but that gives this error:

ERROR <Ens>ErrException: <METHOD DOES NOT EXIST>zinitConfig+7 ^Ens.Host.1 *%New,EnsLib.TCP.InboundAdapter -- logged as '-'
number - @'
Set ..Adapter = $classmethod(..#ADAPTER,"%New")'

Due to this, the adapter is unable to start listening for incoming connections.

2) When I use EnsLib.TCP.CountedXMLInboundAdapter or EnsLib.

7
0 1110
Article Robert Cemper · Aug 26, 2017 3m read

This is a  rather personal view of the history before Caché.
It is in no sense meant to compete with the excellent books from Mike Kadow discussed in an earlier article.
We have different histories and so this is meant to create a different perspective of the past.

The whole story started in 1966 at MGH (Mass.General Hospital) on a PDP-7 Ser.#103
with 8K of memory (18-bit words) [today = 18K byte ]  as a spare system.

"Serial Number 103 - was located in the basement of the now demolished Thayer Building,
currently [2014] the site of the Cox Cancer Center at MGH.

15
2 2220
Article Hiroshi Sato · Apr 27, 2023 2m read

InterSystems FAQ rubric

Migrating data to another system takes two steps.

1. Migrating class definitions

To migrate the class definition to another system, export it to a file in XML format or UDL format (extension .cls).

The export procedure in Studio is as follows.

Tools > Export

> Select multiple classes you want to migrate with the [Add] button

> Check [Export to local file]

> Confirm that the file type is XML, enter a file name, and click [OK].

After this, import the exported XML and UDL files in the studio on another system. The import procedure in Studio is as follows.

4
0 436
Question Sergio Carvalho · Apr 27, 2023
How to translate below code from C to COS?

 

void encode_value (unsigned char value, unsigned char *tx)

{

 tx [1] = ((value & 0xf0) >> 4) + 0x20;

tx [0] = (value & 0x0f) + 0x20;

}

unsigned char decode_value (unsigned char *rx)

{ unsigned char temp_value = 0; temp_value = (rx [1] - 0x20) << 4;

return (temp_value + rx [0] - 0x20);

}

2
0 286
Announcement Laurel James (GJS) · Apr 26, 2023

Deltanji 7.1 is now available.

Key updates include: 

* Interoperability Production component driver included, for customers who have purchased the add-on. You can watch a short demo of it here.
* Implement multi-select delete of objects and components
* Add setting to give a passable Beyond Compare launch command line
* Support simplified Locations & Routes diagram 

For more information, read the release notes here >> https://bit.ly/3mHyJHc

Please get in touch with support@georgejames.com for your release kit. 

The update is also available for Serenji debugger users on VS Code, which has the Deltanji solo edition embedded. Simply update the Serenji extension to version 3.2.3 or later and load the server-side code. 

0
0 234
Question Tiana Andria · Apr 21, 2023

Hello,

I have a form from named otpForm from where I post data to actionCheck.csp and redirect it to another csp file cmain.csp after form post and the redirect is not working. I tried to debug and check the value in the cmain.csp but noticed that redirec t is not working.

Do you know if window.location.href = "cmain.csp";    is working with CSP?

Can someone guide me what to do here please

Thank you

Here is what I did:

//post and redirect form data

<script type="text/javascript">
            jQuery(document).

1
0 367
Article Ward De Backer · Apr 21, 2023 5m read

When you install an IRIS or Caché instance on Windows Server, you'll usually need to install it under a specific user account that has network access permissions. This is very handy when you needs to access network resources for creating files or directly accessing printers.

TL;DR: see key takeaways at the bottom!

When you need to change the Windows user account the IRIS/Caché service is running as, you can configure (after installation):

  • for IRIS (also see the docs): 
    <install-dir>\bin\IRISinstall.
0
1 701
Question Julian Matthews · May 3, 2019

Hi all.

I have a process/operation within Ensemble that grabs a PDF from a webservice, and then saves it to an external location. All is well, except I am noticing that a lot of .Stream files are being stored on the Cache Server.

Does anyone know what causes these to be stored and what would trigger their removal? Would I be right to assume these would be removed if I ran Ens.Util.Tasks.PurgeMessageBank and the creation dates fell within the purge range?

Edit: I answered my own question on if the purge would clear them out. The answer is yes.

4
0 1489
Article Mihoko Iijima · Apr 13, 2023 6m read

InterSystems FAQ rubric

In this article, we will introduce how to deal with the situation: "I accidentally deleted a global!"

Backup files and journals are used to recover specific globals that have been accidentally deleted. Restoration is performed by specifying conditions and restoring journal records using the ^ZJRNFILT utility In this way, you can apply a point-in-time backup of the database up to and including deleting a specific global for journal records that contain deletions.

2
1 766
Question Anna Golitsyna · Feb 9, 2023

Let's supposed somebody updates routines via %RCOPY or %RI, the really old-style hardcore way which still works. Does that leave any log traces in Journaling or system globals, as of when exactly did it happen or what was the IP address of the machine changes came from? I am aware only of the Date Modified changes as seen when opening the file.

4
0 438
Question water huang · Apr 6, 2023

hi,I meet a problem,i want to move huge data from ensemble to oracle.it`s about 3years business data.i have tried some case!

1.EnsLib.SQL.OutboundAdapter

i parse the data one by one,and translate it into inser or update sql statement then write to Oracle,it·s most slowly,and take more disk space。

2.save the data to a new table,and then use dbeaver transport data to oracle。

3.user linktable. save object as insert,but,i can·t user %openid method.

hope to find a high-efficiency way!

1
0 351
Question Joao Palma · Feb 18, 2019

Hi

I've got a string variable which I need to convert into a XML one.

My main goal here is to use the XML bit I've extracted from a HTML file in a message I need to pass over to an operation.

I'm doing the following which always errors

classMethod WriteNodes(myfile As %String)
{
    Set status=##class(%XML.TextReader).ParseString(myfile,.reader)

....

Any easy way of making this happen?

Kind regards

18
1 2320
Question Marcelo Witt · Mar 29, 2023

Looking at the documentation, I see that the global ^ROUTINE brings the information and code of the .INT version of the routines. However, I would like to know where the equivalent information of the .MAC version is, as I did not find any reference to this in the documentation.
Some information in the .MAC version are hidden or already converted into the .INT version, and I would like to have access to this information through the system, and not just opening the routine in the studio.

2
0 394
Question Michoel Reach · Mar 28, 2023

In the documentation  Data Types | Caché SQL Reference | Caché & Ensemble 2018.1.4 – 2018.1.8 (intersystems.com)

it says that "by default, Caché establishes a system-wide ODBC VARCHAR maximum length of 4096; this ODBC maximum length is configurable"

Per instructions, I went to SMP -> System -> Configuration -> General SQL Settings, where most of the fields from  $SYSTEM.SQL.CurrentSettings()

appear. That one does not.

How does one change it, and can it be increased?

Thanks!

[Cross-posted from https://groups.google.com/g/intersystems-public-cache/c/eRFeORb_sb0]

2
0 442
Question Robert Hildebrand · Mar 27, 2023

Hi,

we get HL7 MDM messages with embedded PDF documents that are Base64 encoded. When the embedded PDF document exceeds the size of 3.6 MB the following error occurs:

FEHLER <Ens>ErrBPTerminated: BP Main HL7 MDM # wird wegen folgenden Fehlers beendet: FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1
> FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1

In other posts I read that you can avoid these errors, if you use the data type %VarString instead of normal %String.

3
0 436
Question Kalle Päplow · Mar 29, 2023

Hello,

I have a question regarding the Intersystems Caché Database and its jdbc driver. I need to set the connection timeout for the database, but I couldn't find any documentation stating that the jdbc driver for Caché supports setting the connection timeout. However, I noticed that the jdbc driver for the Intersystems Iris Database appears to support this feature.

My question is, can I use the Iris jdbc driver to set the connection timeout for the Caché Database?

The jdbc driver I use: cache-jdbc-2.0.0.jar

Thank you for your help.

Best regards,
Kalle

0
0 330
Question Scott Roth · Mar 28, 2023

I am trying to pinpoint and troubleshoot an issue we have been seeing lately. We have several SQL Outbound Adapter Operations that are seeing issues trying to connect to our MS SQL Servers using the JDBC Gateway for calling insert, select, update, and stored procedure calls.

ERROR <Ens>ErrFailureTimeout: FailureTimeout of 20 seconds exceeded in osuwmc.Visit.

0
0 373
Article Hiroshi Sato · Mar 23, 2023 1m read

InterSystems FAQ rubric

You can programmatically retrieve routine dates and sizes using the RoutineList query of the %Library.Routine (or just %Routine) class.

The RoutineList query has an argument, and the routine name to be searched can be specified by prefix match or middle match. (For wildcards, specify * or ?)

In the example below, *.MAC is specified as an argument.

SET tStatement =  ##class(%SQL.Statement).%New()
 DO tStatement.%PrepareClassQuery("%Routine" , "RoutineList") 
 SET rs = tStatement.%Execute("*.MAC",,0) 
 DO rs.
2
0 690
Article Julian Matthews · Mar 17, 2023 7m read

Introduction

Say you have a receiving system that accepts HL7 and provides error messages in field ERR:3.9 in the ACK it returns. You require a different reply code action depending on the error message, however the Reply Code Actions settings for the operation do not provide this level of granularity. One option could be to create a process that takes the ACK and then completes the action you were expecting, however things can get a bit messy if the action is to retry the message, especially when trying to view a message trace.

2
1 907
Article Peter Steiwer · Jan 17, 2020 1m read

If you are seeing this error during import: ERROR #6301 Line: 2 Offset: 118 This does not appear to be a Cache exported file, unable to import.

This error is caused by exporting from InterSystems IRIS and trying to import into Caché. If you plan on exporting from IRIS to Caché, you can use the following qualifier to export your classes so that Caché does not throw an error on import:

w $SYSTEM.OBJ.Export(<items>,<filename>,"/exportversion=cache2018.1")

Please see the Documentation for more information about this Export Qualifier

3
0 940
InterSystems Official Jeff Fried · Mar 23, 2023

InterSystems is committed to providing high quality product support to customers for all products, new and old.   As products age – Caché is now 25 – that support will evolve.

InterSystems IRIS was released in 2018 and it is the successor to Caché and Ensemble.  Many Caché/Ensemble customers have migrated to IRIS or have plans to do so in the next few years.  Customers continuing to use Caché or Ensemble should be aware of the following important announcement:

Caché/Ensemble maintenance releases will continue for the next 4 years - through Q1 of 2027.

0
1 1393