About quoted properties, from my experience, the only scenario where those properties can be used is with JSON, but it's not necessary there anyway and can be declared differently.

Dmitry Maslennikov · Jan 22, 2024 go to post

What do you mean, what version?

Need to see the list of SQL Tables, use this query

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';

There were multiple ways to build applications back then

  • Using globals to store data, no this way can be called NoSQL, this case will require additional work on the server side
  • and using persistent classes, which can be accessed via SQL

So, depends on how old this application is, and it has not updated for a long time

If you already know for certain, that the data you need can be accessed through SQL, then it's possible to make Flink working

There are no such tools at the moment, or anything similar to Oracle GoldenGate.

I suppose you meant Apache Flink, https://github.com/ververica/flink-cdc-connectors

Yeah, there is no support for Caché/IRIS. But it can be implemented, I already have experience with it

But, such an old system may not have adoption to SQL, and would require some additional work on the Caché side.

You may try using JDBC connection, to check if the data available through SQL. Then it could worth to implement flink CDC connector for Caché/IRIS.

Just in case you can use other options, I've already adapted Trino and Presto

Dmitry Maslennikov · Dec 20, 2023 go to post

Deprecation of this feature, quite a big deal, actually.

One of the use cases, I would think is mostly used here, is to shorten package names in SQL. So instead of using a multi-level package long name, use shortened form, which is quite handy.

Dmitry Maslennikov · Dec 20, 2023 go to post

That's quite a strange task, what exactly do you need to achieve?

I have no idea what the format is there.

Dmitry Maslennikov · Dec 20, 2023 go to post

Yeah, I do answer sometimes, did not expect, that's so much, and I did not expect that I was tagged so much too

Dmitry Maslennikov · Dec 19, 2023 go to post

The issue is, that those settings are not presented in UDL formats. Without supporting it as files, and being able to use source control with this, it won't be easy to use.

Dmitry Maslennikov · Dec 18, 2023 go to post

There is a function `exec`, which may help to execute something after start, and has option to update the command using `with_command`

Dmitry Maslennikov · Dec 18, 2023 go to post

Also possible to use Enterprise license

import os
from testcontainers.iris import IRISContainer

license_key = os.path.abspath(os.path.expanduser("~/iris.key"))
image = 'containers.intersystems.com/intersystems/iris:2023.3'
container = IRISContainer(image, username="demo", password="demo", namespace="demo", license_key=license_key)
container.with_exposed_ports(1972, 52773)
container.start()
print('SQLAlchemy URL', container.get_connection_url())
print('Username', container.username)
print('Password', container.password)
Dmitry Maslennikov · Dec 13, 2023 go to post

Of course, and if you read my article, you will find a paragraph and code with it. And I'm saying that it's only available as ObjectScript representation, but not in Embedded Python, and there is no backward function, no way to get $listbuild out of pythons list

Dmitry Maslennikov · Dec 11, 2023 go to post

$Horolog itself does not contain information about timezone, it's just date and time

if you need to make it to another timezone, you can just add or subtract difference

Yes, if you send too much, and the listener will not be able to read such fast, it may cause overflow, and the whole server may stop working. You can use Count(resourceName)

%SYSTEM.Event is only for Inter-Process communication and messages sent through SharedMemory, which may cause some issues if not used correctly (overflow for instance).

The only way to send it to Global, is to make the listener which will do it, but using %system.Event in this case makes no sense, if you could do it without it.

Dmitry Maslennikov · Nov 26, 2023 go to post

Making SDK is the easiest part, tracing abilities are what's missing in the Language, I mean tracing which could be used in realtime, with no significant performance degradation.

Dmitry Maslennikov · Nov 24, 2023 go to post

There is no way to support tracing for ObjectScript, this is the feature I would like to implement, and have some ideas, but it's quite a tricky task

Dmitry Maslennikov · Nov 24, 2023 go to post

You already found port 52773

IRIS does not have http://localhost:52773/RPCNAME

Where did you get it RPCNAME? How did you configure it in IRIS? What else would you expect it to answer?

I tried to find anything about VistA RPC Broker, and found only an installation guide from 1997, It's a year when Caché was released. 

So, you are asking about VistA RPC Broker on IRIS, I don't know how it's possible 

And why it's an issue with IRIS, not with VistA RPC Broker

Dmitry Maslennikov · Nov 24, 2023 go to post

It does sound like an issue with third party application Vista, not IRIS itself, you should find their channels for the questions

Dmitry Maslennikov · Nov 24, 2023 go to post

All packages have to be installed into <Installdir>/mgr/python, check this folder if it contains the required module

You have to specify the target folder in irispip

irispip install --target <installdir>\mgr\python <package>

Check the relevant documentation

Dmitry Maslennikov · Nov 23, 2023 go to post

Congrats on the first project, and thanks

A few questions, have you looked at SpringBoot, Hibernate, and Liquibase?

Would you consider using any of those libraries, in this project?

Dmitry Maslennikov · Nov 17, 2023 go to post

Any transactions that not committed, will be rollbacked in case if systems shutdowns

When system was terminated unexpectedly, during the start it checks if any transactions were left uncommitted and rollbacks them

it needs for logical integrity of the data