Question
· Mar 31, 2021
End Session programmatically

We have a background job that keeps an eye on our ongoing CSP sessions, counts licenses used and some other tasks. Question: If I know the session ID (something like "wuuZ2Gwgxw"), how do I (find and) end that particular session programmatically in ObjectScript - i.e., the equivalent of %session.EndSession=1 in the csp page code?

Thanks!

Michael Reach

1 15
2 948
Question
· Aug 28, 2024
JOB $SYSTEM.obj

IS THERE A WAY TO JOB A $SYSTEM.OBJ FUNCTION AND FIND IF THE JOB IS RUNNING OR FINISHED TO ASYNCHRONOUSLY CONTINUE OR HALT THE PROCESS?

1 5
0 165

We have a CSP pages script, which gets and sets a cookie for email tracking purposes, we had problems with cookies not being passed to this script when the URL was opened from an email client due to being cross-site, so I set Session Cookie Scope & User Cookie Scope to None instead of Strict.

This solved the issue with cookies not being passed, however the script entirely does not work anymore due to the error:

"Invalid CSP response cookie. SameSite cannot be set to None without Secure. : CSP Error"

0 3
0 203
Question
· Aug 22, 2024
Access to current line text

Is there a general way to set a variable XYZ equal to the text of the code line being executed now? Debugger or production. For example, for a code below if code is currently assigning a to 1, XYZ would be equal "S a=1". The same question about a variable containing current routine name.

S a=1

0 2
0 149

I am looking for an installation kit: CachePCkit_x64.exe for 64 bits Windows newer than 2015.1
I have had a computercrash and needed to install Caché all over again.
Unfortunately I only had the kit from 2013 and that had just one feature missing.
I always could do anything I had to do with Caché 2015,2 and I don't need anything else.
Could somebody help me?

0 1
0 136

Hello, I am total newbie when it comes to ObjectScript (just started going through the tutorial). We have a task where we have to update the port number for 75-100 items (say for half of the items in our production). Going through the documentation and other community posts it looks like we could utilize class method 'ApplySettings' in Ens.Production. But we are running into an issue. Below is what we currently have. When we hard code the item, it works. But, if we store the item in a variable and try it pass it through. Then it doesn't work. We are also not seeing an error. Is our

0 3
1 190

I have an application that is called by terminal in local cache environment. The application basically has two processes that runs and does the below call to retrieve files and sub-directories in separate folders. When the main process starts, it jobs off and calls the second process that gathers all files in a directory by using a window dir and file command that pipes the results to a file. The main process continues on and does the same thing but from a different folder. When checking out what was retrieved by the secondprocess, there were directories and files missing. When I run this as just one process it works properly. I am running this on a 2017 license cache instance. I have also tried this on IRIS instance and got the same results. Could you please advise me what is causing the window directory to not work properly when running the processes at the same time?

0 8
0 366

Traditional Caché Objectscript has the multi-dimensional array as its main form of complex data structure and the $order command as the main means of traversing said data structures. But newer versions of Caché ObjectScript also have data structures that are direct parallels of what languages such as JavaScript provide, in the form of %DynamicObject and %DynamicArray. These have an easy to use iterator feature via the %GetIterator method, and even a handy built-in literal syntax for constructing new objects.

0 4
0 1.2K

Ok, I am attempting to clarify the required use of the RESIZE command, when you have a UNIVERSE or a UNIDATA DB attached to Cache. Traditional UNIVERSE / UNIDATA databases 'require' that hashed files be re-sized according to historic use, to prevent file overflow (aka. performance issues). It is not clear if that requirement is fully eliminated by attaching one of these databases to Cache. It is clear that, if you do not allocate 'enough' space on Cache for the database 'as a whole', that is a problem.

0 6
0 150

when doing ETL process from cache database to mysql database(ods) and to another mysql database(dwd).

There are lots of DR columns in one table.

In the first step we need two databases to be totally consistent(ods=cache database)

However, the DR column in another database lost its meaning and become to normal number.

In the last step we do the data governance in ODS to DWD. My question is how to write sql without many `join` in this step.

0 0
0 74

Hi we are migrating to Linux from OpenVMS. which includes a new server and SAN. after reading a prior post about the differences with ESX and a VSAN I would think that the a SAN with Virtual disks all SSD type would be similar. which after reading it makes me think that using thick provisioning is the way to go. the 3rd party vendor is arguing this point with me. is it the same premise? is non-dedupe the way to go with thick provisioning. we are currently on 2015.2 of Cache with the plans to go to 2018 until the app vendor is able to certify their product on the latest versin.

0 1
0 119

I setup a linked server to a cache database to query the data and when I try an query the data I get

OLE DB provider 'MSDASQL' for linked server 'xxx' returned data that does not match expected data length for column '[MSDASQL].CSFAELIGVENCITY'. The (maximum) expected data length is 20, while the returned data length is 23.

Should I be using a different driver when setting up the DSN?

0 3
0 4.8K

Hi:

I have been adapting the IRIS WHIZ addon as part of the contest. I will soon fork the code on github so the changes are available.

The next phase is I am storing the date from and to time for a more complete search cache

zenPage.getComponent(36).value

it works in the chrome console ok

I'm not sure in external JS how to set the page it is on as a zenpage to use the zenpage functions

0 3
0 114
Question
· Jul 30, 2024
Generate JWT token

Hi there,

My purpose is to encrypt a communication using JWT tokens. I am developing on IRIS and my purpose is to generate a JWT token that will run on an older version of Cache (so I have to use functions that are compatible with the older version, Cache).

I wrote this code in IRIS:

s username = "user-test123"
set st = ##class(%OAuth2.Utils).TimeInSeconds($ztimestamp,0)
set et = ##class(%OAuth2.Utils).TimeInSeconds($ztimestamp, 60*15)

0 0
0 223

Hi,

I'm new with writing Caché Objectscript so I need some assistance. I have XML which contains information like this:

<?xml version="1.0" encoding="UTF-8"?>
<session>
   <sessionId>124364</sessionId>
   <cabinet>demo</cabinet>
   <eventType>IN</eventType>
   <eventTime>20161006160154</eventTime>
   <login>test</login>
   <loginFirstName>test</loginFirstName>
   <loginLastName>test</loginLastName>
</session>

I have a class representing this object as follows:

0 5
0 1.5K

As I was trying to create a routine search query via RoutineList, I discovered that documentation both for Cache and Iris offers only ABC* and ABC? syntax for including routine names and, unlike %RO, does not offer name ranges. Is that indeed so?

After some system files reading, I discovered that you can EXCLUDE certain routines with ', by using the 'ABC or 'ABC* syntax. That is not documented but it should be. Any other non-documented RoutineList syntax capabilities?

Example:

0 1
0 132

I have a few routines in ^rINDEX that are missing in ^ROUTINE. At least some of those routines lack a timestamp, probably Date and Time Modified in ^rINDEX. It causes D %RO crash when such a routine is referenced by a routine range, since "" is an illegal $ZDTH value.

Healthy entry (note the timestamp): ^rINDEX("ABC,"INT") = $lb("2021-06-15 15:08:38.846885",) ;The second argument is sometimes present and sometimes not, likely the routine size.

Unhealthy entry (note an empty timestamp): ^rINDEX("DEF,"INT") = $lb("",21)

0 3
0 141

Hi

Is there a way to generate an MD5 checksum of a file by performing a checksum against the file's parts? We potentially have to process large files and therefore cannot keep the entire file in memory. From what I understand checksum related logic is typically stateful, allowing file data to be passed through sequentially, however it appears cache script offers only stateless functions offering a simple method of generating a single checksum hash from a single string (or stream), correct me if I'm wrong?

0 2
0 167

Hello everyone,

I just want to know if there is a difference in performance between using Class methods versus MAC routines?

For example:

do Method^MyFunction()

versus

do ##class(MyFunction).Method()

0 2
0 173

Could any one tell me, how the index works in cache db, Consider for example, I have a table called "Employee" and the fields as "EMPID, EMPNAME, EMPAGE" and I am having index for EMPID as IDX_EMPID and trying to get the record using the following query as

SELECT * FROM EMPLOYEE WHERE EMPID="005"

and the table data be like

EMPID EMPNAME EMPAGE

001 ABC 20

002 AAA 21

003 ABB 23

004 BBB 20

005 BDF 24

006 EEE 22

0 2
0 167