Using VECTOR_COSINE() in SQL query to perform a text similarity search on existing embeddings in a %VECTOR column.

Code is below.

Commented out sql query returns this error: SQLCODE: -29 Field 'NEW_EMBEDDING_STR' not found in the applicable tables^ SELECT TOP ? maxID , activity , outcome FROMMain .AITest ORDER BY VECTOR_COSINE ( new_embedding_str ,

Sql query as written returns ERROR #5002: ObjectScript error: <PYTHON EXCEPTION> *<class 'OSError'>: isc_stdout_write: PyArg_ParseTuple failed!

0 10
0 134

I have several 1GB journals from a LIVE server that I would like to inspect (eg: check which globals have been updated over the time).

Is there a simple way to view those journals using another IRIS instance ? (eg: local installation).

I have been tempted to put those files directly into the journal folder of my local installation and restart the system, however I am concerned that the transactions they contains will be restored and will corrupt the local database.

0 10
1 238

Hi Developers,

We have exciting news! The new InterSystems online programming contest dedicated to all things health-related will start very soon!

🏆 InterSystems FHIR and Digital Health Interoperability Contest 🏆

Duration: January 15 - February 4, 2024

Prize pool: $14,000

10 10
0 1.4K

How to understand what's wrong with compilation if the compilator just hides errors?

Compilation started on 05/15/2023 15:58:11 with qualifiers 'cuk'

Detected 1 errors during compilation in 0.003s.


Compilation started on 05/15/2023 15:58:32 with qualifiers 'cuk'

Detected 1 errors during compilation in 0.002s.


Compilation started on 05/15/2023 15:58:51 with qualifiers 'cuk'

Detected 40 errors during compilation in 0.089s.

40 errors, and what do I have to do with this so valuable information?

1 10
0 251

It's time to announce the Winners for January! Please welcome our awesome Global Masters Heroes!

The storm of applause goes to these developers and their great contribution to DC in January:

🥇 @Luis Angel Pérez Ramos, Sales Engineer, InterSystems
🥈 @Pierre LaFay, CEO, Ellipse
🥉 @Sylvain Guilbaud, Sales Engineer, InterSystems

Learn more about the competition and our awesome winners below.

10 10
0 295

Still working on my first External REST API call, and I am struggling to find the exact answer I am looking for... I get a JSON response from my API call but I am not quite sure how to dynamically get the JSON response into the Ens.Response Object with its lists of Arrays that I have defined.

set tSC = ..Adapter.SendFormDataArray(.tHTTPResposne,"POST",tHTTPRequest,,,tURL)

0 10
0 386
Question
· Sep 12, 2023
Scoping OID / OREF map

It's a feature of ObjectScript (perhaps widely known, perhaps not) that if you open the same object ID multiple times, you end up with the same OREF. For example:

USER>set obj1 = ##class(Sample.Person).%OpenId(1)
 
USER>set obj2 = ##class(Sample.Person).%OpenId(1)

USER>w obj1,!,obj2
1@Sample.Person
1@Sample.Person

Generally speaking, this is an important feature - you won't end up accidentally modifying the same record via multiple paths and losing some of the changes.

2 10
2 313

Hi,

I've created an Object Gateway via the System Management Portal, and installed the following Java classes to allow connectivity between the IRIS server and RabbitMQ ...

RabbitMQ.jar

amqp-client-5.18.0.jar

slf4j-api-1.7.36.jar

slf4j-simple-1.7.36.jar

I've used the Java Gateway wizard via Studio and compiled the java classes that this would refer to, and a quick test worked on Day 1. However, on Day 2, on trying to connect, I got this error :

<ZJGTW>%ProcessErrorNew+11^%Net.Remote.Proxy.1

0 10
0 74

We have a service account that is running queries to pull some data. It has read only access to the tables, but, unfortunately, the tool is starting a transaction before it reads the database. The query takes more than 20 minutes (21 - 23 minutes), so we're getting the console message that the transaction is open longer than 20 mins. Is there a way to prevent a user/service account from being able to start a transaction since it only has read access to all of the tables in the database?

0 10
0 426

I have some databases in my cache instance that were created from an online backup file (.cbk). I would like to see the information for these databases in the Databases and SQL sections of Management Portal, but they only appear in the Classes section. I can navigate to the files in my cache instance terminal and see the CACHE.DAT files, and a check in the terminal shows that they are mounted.

This is what I see in the terminal for each database when I check to see if the databases are mounted:

%SYS>set db="/path/for/mydatabase"

0 10
0 217

Hello, I need to determine the best way to split a class containing multiple methods(about 20), into multiple classes in which each method is in its own class. I am wondering if there is another way other than manually creating the different classes, and copying each method into each class. Doing this in Intersystems Studio.

2 10
1 311

Hi Community,

Can anyone point me to the docs that show how to add automatic class documentation for the arguments used in a method call? I can auto document the class, methods, properties etc. with the "///" but can't figure out how to get the nice argument documentation for the arguments used when calling a method.

Thanks in advance

0 10
0 137

Work Queue Manager (WQM) is a feature of InterSystems IRIS that enables you to improve performance by distributing work to multiple concurrent processes programmatically. The idea is that you split the work into chunks, and WQM distributes the chunks across worker processes and can provide the info that the work is done.

However, recently, I got an interesting question: there's a large logical transaction composed of ~1,000,000 individual objects and SQL inserts and updates. Some updates are CPU-intensive, so the original idea was to use WQM to split an update into chunks to speed things up.

But, here's a catch: if one of the individual 1,000,000 changes fails (there's a variety of application-level checks so that it can fail, and that's not even that abnormal a behavior), the entire transaction must be rolled back. That creates a problem: each chunk must report success before committing their individual transactions, and someone must get all these reports and decide if we are committing or not.

Unfortunately, it looks like WQM does not have a bidirectional communication between workers and manager, so I suggested an approach using events:

  1. Start jobs.
  2. Wait for all jobs to report success using $System.Event.WaitMsg().
  3. Send Commit or Rollback using the $System.Event.Signal().
2 9
1 177
InterSystems Official
· Nov 9, 2023
InterSystems IRIS Minimum Supported CPU Models

When AMD published the x86-64 standard in 1999, little did they know they were inventing what would become the de-facto architecture for server CPUs. But the CPUs of today aren’t the same as ones produced 20 years back – as they have extensions for everything from Advanced Vector Extensions (AVX) to Hardware-Assisted Virtualization (VT-d).

InterSystems would like to take better advantage of these new extensions in upcoming versions of InterSystems IRIS. While our compilers are smart enough to create optimized code for many situations, some optimizations can only be turned on by explicitly cutting off support for processors that do not have that instruction set. Additionally, we are finding it increasingly difficult to maintain older CPU models to test on.

4 9
6 695
Article
· Jun 12, 2023 11m read
Examples to work with IRIS from Django

Introducing Django

Django is a web framework designed to develop servers and APIs, and deal with databases in a fast, scalable, and secure way. To assure that, Django provides tools not only to create the skeleton of the code but also to update it without worries. It allows developers to see changes almost live, correct mistakes with the debug tool, and treat security with ease.

To understand how Django works, let’s take a look at the image:

12 9
3 608

I have a BPL that checks if at least one of the incoming OBX 5 values exists in TestTable. If the value exists it gets passed to Operation A and if it doesn't exist it gets passed to Operation B. The lookup table has keys that range between 10 to 70 characters. However, the incoming message sometimes has OBX 5 values that are greater than 510 characters which causes the BPL to terminate and the message does not get sent to any operation.

0 9
0 173