検索

記事
· 2025年11月27日 3m read

Shell SQL JDBC de Servicios en la Nube con sqlline

 

Shell SQL JDBC en la Nube de InterSystems

Una forma sencilla de conectar, explorar y depurar los Servicios en la Nube de InterSystems mediante JDBC con sqlline.

 


Esta publicación respalda la aplicación de Open Exchange que ofrece algo más de detalle sobre cómo conectaros rápidamente a un prompt de InterSystems Cloud SQL. Aquí nos conectaremos a un único Cloud SQL mediante JDBC para realizar algunas operaciones y, después, nos conectaremos a varios y federaremos el SQL para trabajar con múltiples despliegues a la vez.

Inicio rápido

Vamos a mantenerlo breve y esperamos que sea sencillo.

Obtener la aplicación

https://github.com/sween/isc-cloud-jdbc-sql-shell

Descarga

  • Driver ☕
  • Certificado(s) para los despliegues 📃

Compilación

cd isc-cloud-jdbc-sql-shell
docker build -t isc-cloud-jdbc-sql-shell .

Inicio

Rellenad run.sh como si fuera un formulario; incluye las credenciales y la información del JDBC URL.

bash run.sh

sqlline

 

No tiene sentido repetir el extenso manual de sqlline una vez que estáis conectados, pero aquí tenéis algunos ejemplos de uso en un par de ofertas de InterSystems Cloud en forma de artículo.

 

Esto es solo una implementación del gran sqlline, con conectividad TLS sencilla para facilitar su uso.

Ejemplos de uso

Registro de sesión

Aquí configuraremos el registro del shell en la carpeta de salida y empezaremos a consultar la base de datos. Esto terminará en vuestro sistema local cuando finalicéis la sesión.

!set script /output/debug_omop_jdbc.log

Vale la pena mostrar esto porque, si no lo habéis visto ya, sqlline tiene una interfaz de !command que podéis consultar con !help.

Crear esquema y copiar tabla

No es nada revolucionario, pero podéis ver el resultado en el Portal… aquí creamos un esquema y copiamos una tabla de un esquema a otro recién creado.

sween@pop-os:~/Desktop/OMOP/isc-cloud-sql-shell$ bash run.sh
Starting sqlline and connecting to:
  URL    : jdbc:IRIS://k8s-0a6bc2ca-a8e3f174-84fc3b8135-aa1cd181c9825c06.elb.us-east-1.amazonaws.com:443/USER/:::true
  Driver : com.intersystems.jdbc.IRISDriver
  User   : SQLAdmin

Transaction isolation level TRANSACTION_REPEATABLE_READ is not supported. Default (TRANSACTION_READ_UNCOMMITTED) will be used instead.
sqlline version 1.12.0
ISC > CREATE SCHEMA OMOPCDM54BAK;
No rows affected (0.091 seconds)
ISC > CREATE TABLE OMOPCDM54BAK.person AS SELECT * FROM OMOPCDM54.person;
1,101,000 rows affected (5.84 seconds)
ISC >

SQL federado entre despliegues

Más o menos revolucionario… mientras estáis conectados al despliegue en contexto con el que lo iniciasteis, conectaos también a otra base de datos, de otro tipo de oferta, y ejecutad SQL federado contra todas con !all. Hay una carpeta llamada “certs” en la que podéis dejar todos los certificados de los despliegues que tengáis y reconstruir el contenedor cuando queráis.

sqlline permite usar !connect para añadir conexiones a vuestra lista, de modo que podéis seleccionarlas o ejecutar cosas contra !all.

🎉

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年11月27日 5m read

Reducing the Footprint of the Docker image of IRIS Community Edition

The most upvoted idea on the InterSystems Ideas Portal—garnering 74 votes—requests a lightweight version of IRIS. While the platform has grown into a powerful data engine, many projects require only its SQL database capabilities. This article demonstrates how to build an unofficial, compact IRIS Community Edition image focused solely on core database functionality, reducing the image size by over 80%.

⚠️ Disclaimer

This project produces an unofficial, experimental image of InterSystems IRIS Community Edition.

  • Not supported or endorsed by InterSystems.
  • Use at your own risk. The modifications remove core platform features and may break compatibility with tools, APIs, and expected behaviors.
  • No warranties or guarantees apply, including fitness for production use.
  • Intended only for educational and experimental purposes by advanced users.

Why a Lightweight IRIS?

While IRIS today includes rich functionality—interoperability, analytics, machine learning, system management, etc.—many projects only require its core SQL capabilities. The official Community Edition Docker image is approximately:

  • Disk usage: 3.5–3.8 GB
  • Compressed size: ~1.1 GB

IRIS Light reduces that to:

  • Disk usage: ~575–583 MB
  • Compressed size: ~144–148 MB

This makes it suitable for:

  • Microservice or containerized SQL use
  • CI pipelines with faster startup and pull
  • Horizontal scaling where full features are unnecessary

Image Footprint Comparison

The official IRIS Community Edition images typically occupy 3.5–3.8 GB on disk, with compressed sizes around 1.1 GB:

$ docker images containers.intersystems.com/intersystems/iris-community
IMAGE                                                                    ID             DISK USAGE   CONTENT SIZE
containers.intersystems.com/intersystems/iris-community:latest-cd        14c6314edcc5        3.8GB         1.17GB
containers.intersystems.com/intersystems/iris-community:latest-em        4c25627895eb       3.52GB         1.01GB
containers.intersystems.com/intersystems/iris-community:latest-preview   424e87dbb7d8       3.81GB         1.17GB

By contrast, the stripped-down "IRIS Light" image created via this approach is approximately 8× smaller in compressed size:

$ docker images caretdev/iris-community-light
IMAGE                                                                    ID             DISK USAGE   CONTENT SIZE
caretdev/iris-community-light:latest-cd                                  ce5c2d7fa173        583MB          148MB
caretdev/iris-community-light:latest-em                                  fd33a51a0e81        575MB          144MB
caretdev/iris-community-light:latest-preview                             f10c714117da        583MB          148MB

Analyzing Image Layers with Dive

To understand and optimize the IRIS Community Edition image, we used dive, a tool for inspecting Docker image layers and identifying inefficiencies.

Before Optimization: Vanilla IRIS Community Image

The screenshot below shows the analysis of the official iris-community:latest-em image. One of the largest layers weighs in at 882 MB, containing Java, system libraries, and other runtime components not strictly required for SQL-only workloads.

And the biggest one 1.5GB, which contains mostly IRIS itself

After Optimization: IRIS Light Image

By removing unneeded packages and compacting internal IRIS storage, the final image fits into a single 320 MB layer, achieving dramatic size reduction.

How the IRIS Light Image Is Built

The process follows a multi-stage Dockerfile, starting from the standard iris-community:latest-em base. Key steps include:

1. Disable Components in Configuration

  • Turn off WebServer, System Management Portal, and Ensemble in iris.cpf.

2. Remove Unused Packages from Inside IRIS

Using ObjectScript within an IRIS session:

  • Delete packages: %SYS.ML, DeepSee, Interop, OAuth2, Net, Report, and more.
  • Keep only essential system libraries (e.g., %Library, %SQL, %SYSTEM).

3. Stub Classes

Some required classes (e.g., for startup) are replaced with minimal no-op implementations if needed.

4. Clean Databases

Compact, defragment key databases to reduce size

5. File System Cleanup

Remove:

  • Development tools
  • Web stack and CSP
  • Interoperability libraries
  • Python/Java support
  • Locale data, logs, temporary files, ODBC/JDBC drivers

6. Copy Cleaned Contents to a Fresh Ubuntu Base

The final image is built on top of ubuntu:24.04, includes only necessary files and tools, and uses tini as PID 1.

Outcome

The resulting image is around:

  • Compressed size: ~144–148 MB
  • Uncompressed disk usage: ~570–580 MB
  • SQL functionality: verified using the sqlalchemy-iris test suite (619 passed, 912 skipped, 0 failed)

This makes it highly suitable for:

  • Minimal SQL services
  • Lightweight dev/test containers
  • Embedded or edge deployment scenarios
  • Stateless horizontally scaled architectures

Important Limitations

  • No Management Portal or Web Services
    The entire CSP/web stack is removed.
  • No Interoperability, DeepSee, iKnow, or Machine Learning
    These subsystems are explicitly deleted.
  • No internal or external support
    InterSystems provides no guarantees for this image. Compatibility and upgrade behavior are undefined.
  • Future IRIS versions may change startup requirements
    Internal dependencies on removed packages or files may prevent future versions from working with this approach.

Conclusion

IRIS Light is a streamlined, community-driven Docker image for InterSystems IRIS, offering significant reductions in size and complexity for database-centric use cases. While not officially supported, it provides a foundation for experimentation, rapid prototyping, and where full IRIS capabilities are not needed.

Users are encouraged to review the Dockerfile, adapt it to their own needs, and understand the implications of removing core platform features.

Users are encouraged to tailor the Dockerfile further to suit their own operational and security constraints. The full build process is transparent and reproducible using only public Docker base images.


This project available here 

IRIS Community Light docker images available on Docker Hub 

6 Comments
ディスカッション (6)3
続けるにはログインするか新規登録を行ってください
InterSystems公式
· 2025年11月27日

InterSystems サポートプラットフォーム最新情報 Q4-2025

2025年第3四半期の最新情報をお伝えします。

  • 2025.3 では、すべてのオペレーティングシステムで OpenSSL 3 が使用されます。SUSE 15 sp6 は、SUSEを利用する IRISユーザのミニマムサポート OS となります。
  • ミニマムサポート CPU の基準が 2025.3 で引き上げられます。
  • Windows Server 2016 は 2025.3 でサポート対象外となります。

初めてご覧になる方、はじめまして!この記事では、最近おこなわれた変更点や今後予定されている変更点に関する情報を、みなさまに共有させていただきます。ただ、将来の予測は難しい側面があり、ロードマップは約束されたものではないということを十分ご理解くださいませ。   

 

InterSystems IRIS 本番環境用オペレーティングシステムと CPU アーキテクチャ

ミニマムサポート CPU アーキテクチャ

2024年、インターシステムズは、IRIS をより速くするために新しい CPU 命令を利用できるよう、すべての Intel および AMD ベースのサーバに関する ミニマムサポート CPU モデルを発表しました。IRIS 2025.3 ではこのリストが更新され、AVX、AVX2、BMI、BMI2 命令を利用する x86-64-v3 マイクロアーキテクチャ が必要となります。

  • Intel ベースのシステムを利用する場合、Haswell 以上が必要となります。
  • AMD ベースのシステムを利用する場合、Excavator 以上が必要となります。Piledriver および Steamroller はサポートされません。

お使いの CPU がサポート対象かどうか確認するには、2023年の記事 CPU のマクロアーキテクチャファミリと命令セットの判定方法 をご参照ください。

 

Red Hat Enterprise Linux

  • 最近の変更点
    • RHEL 10 - Red Hat は RHEL 10 を5月20日にリリースしました。 InterSystems は 6月20日に RHEL 10 をサポートする IRIS 2025.1.0 をリリースしました。
      • IRIS 2025.2 以降は、RHEL 9 および 10 をサポートします。RHEL 8 のサポートは終了しました。
    • RHEL 9.6 - バージョン 9.6 のマイナーOS認証が問題なく完了しました。
  • Red Hat のリリースライフサイクルについては こちら をご覧ください

 

Ubuntu

  • 今後予定されている変更点
    • Ubuntu は 26.04 を2026年4月23日にリリースするとアナウンスしました。約一か月後にこのバージョンをサポートするIRISをリリースする予定です。
  • 最近の変更点
    • Ubuntu 24.04.2 がリリースされ、マイナーOS認証も問題なく完了しました。
  • Ubuntu のリリース履歴については こちら をご覧ください。

 

SUSE Linux

  • 今後予定されている変更点
    • 今月頭に SUSE 16 がリリースされました。InterSystems は IRIS 2026.1 でこれをサポートする予定です。
    • IRIS 2025.3 以降では、SUSE Linux Enterprise Server 15 SP6 以上が必要となります。 SLES 15 sp6 では、OpenSSL 3 を使用するオプションが追加されています。お客様に可能な限り安全なプラットフォームを提供するために、OpenSSL 3 を使えるよう IRIS 内部処理を変更する予定です。
  • SUSE ライフサイクルについては こちら をご覧ください。

 

Oracle Linux

  • 今後予定されている変更点
    • Oracle Linux 10 のテストを開始しました。これまでの経験から、RHEL 10 をサポートする IRIS バージョンであれば問題なく動作すると考えています。
  • Oracle Linux のサポートポリシーについては こちら をご覧ください

 

Microsoft Windows

  • 過去にお知らせ済みの変更点
    • IRIS 2025.1 以降で Windows Server 2025 がサポートされています。
  • 今後予定されている変更点
    • IRIS 2025.3 以降は、Windows Server 2016 と 2019 はサポートされません。
  • Microsoft のライフサイクルについては、こちら をご覧ください。

 

AIX

  • 今後予定されている変更点
    • IBM は新しい Power 11 を7月にリリースしました。 残念ながら、機器の納品が滞っております。性能試験のレポートが準備でき次第お知らせいたします。
  • AIX のライフサイクルについては、こちら をご覧ください

 

コンテナ

  • 今後予定されている変更点
    • IRIS 2026.2 または 2026.3 で、ベース コンテナ イメージを Ubuntu 26.04 に変更する予定です。まだかなり先の話ですが、決まり次第お知らせします。
     

InterSystems IRIS 開発環境用オペレーティングシステムと CPU アーキテクチャ

MacOS

  • 今後予定されている変更点
    • IRIS 2026.1 で Intel ベースの MacOS のサポートを終了します。Apple は Intel ベースのマシンのサポートを段階的に廃止しており、2026年には残りのすべての Intel ベースの Mac のサポートを終了する意向を発表しました。
  • 最近の変更点
    • IRIS 2025.1 で、ARM ベース および Intel ベース の MacOS 15 のサポートを追加しました。

 

InterSystems コンポーネント

  • 最近の変更点
    • InterSystems API Manager 3.10 がリリースされました。以前のバージョンの API Manager をご利用されている場合、新しい IRIS ライセンスキーが必要となります。
    • InterSystems Kubernetes Operator 3.8 がリリースされました。

 

Caché ならびに Ensemble 本番環境用オペレーティングシステムと CPU アーキテクチャ

  • 過去にお知らせ済みの変更点
    • Caché ならびにEnsemble の最終メンテナンスリリースは 2027年第一四半期に予定されていること、あらためてご留意ください。想像より早くその日はやってきます。詳細は Jeff の記事 をご覧ください。

 

InterSystems サポートプラットフォームに関するドキュメント

サポート・プラットフォームに関する以下のドキュメントにて、正式なサポートリストを入手いただけます。

以上になります。もし追加で知りたい情報がございましたら、ぜひコメントなどを通じてお知らせください。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年11月26日 4m read

控制好 IRISTEMP:阻止它侵占你的存储空间

 

您检查了服务器,发现IRISTEMP 增长过快。不必惊慌。让我们在存储空间耗尽之前调查一下这个问题

步骤 1:确认 IRISTEMP 增长问题

在假设 IRISTEMP 是问题所在之前,让我们先检查一下它的实际大小。

检查可用空间

IRIS 终端运行以下命令:

%SYS>do ^%FREECNT

出现提示时,输入

Database directory to show free space for (*=All)? /<your_iris_directory>/mgr/iristemp/

如果输出结果显示可用空间非常小,则IRISTEMP 正在像拥挤的壁橱一样占满您的存储空间。但是,如果可用空间没有问题,但 IRISTEMP 数据库文件 (IRIS.DAT) 仍然很大(这可能就是你来这里的原因),这意味着临时数据已经被清理。在这种情况下,你的任务就是密切关注,按照下面的步骤在下一次行动中抓住它,并恢复宝贵的空间。

第 2 步:确定 IRISTEMP 的用途

运行 ^%GSIZE 查找大型全局文件

%SYS>do ^%GSIZE

按照提示操作:

Directory name: /<your_iris_dir>/mgr/iristemp/

All Globals? No => yes

33 items selected from
33 available globals

1) Get exact packing details
2) Get block counts only
3) Use fast stochastic estimate

Please select an option:  3 => 3

输出示例:

        Global              Blocks          Bytes Used Packing
      ----------- ---------------- ------------------- -------
      IRIS.Temp.Ensemble
                                1                  60      1 %
      IRIS.Temp.MARIO
                               50             360,960     88 %
      IRIS.Temp.RecompileInfo
                                1                  84      1 %

如果看到不熟悉的内容,特别是与 ISC 或 SQL 有关的内容,可能是 SQL 查询占用了太多空间。请与应用程序开发人员联系,了解这些查询在做什么,是否可以优化。有时,添加索引或删除不必要的 ORDER BY 子句就能带来很大的不同。

步骤 3:检查进程私有全局(PPG)

某些进程可能无法正常释放进程私有全局(Process-Private Global,PPG)。运行:

%SYS>DO ^GETPPGINFO

输出示例:

%SYS> DO ^GETPPGINFO("*")
Process ID: 303 --> Total PPG Block count 10840
  ^||%t uses 10838 blocks (maxblock #1926355)
  ^||TempQuery uses 2 blocks (maxblock #115489)
  Highest block #: 1926355
Process ID: 33456 --> Total PPG Block count 45343
  ^||MARIOtest uses 45343 blocks (maxblock #1927313)
  Highest block #: 1927313

如果某个进程使用了大量PPG 空间,它可能会卡住或无法按预期运行。您应该与应用程序开发人员一起进行调查,以确定 PPG 是否已知,以及代码中是否存在故障。同样,如果 PPG 是未知的,而且看起来像 InterSystems 内部代码(例如 ^||%t),则最好打开 WRC 支持案例寻求帮助。

通过阅读官方文档,成为 GETPPGINFO 的专家。

第 4 步:解决问题

选项 1:停止进程

一旦确定了正在消耗 IRISTEMP 的进程,如果你知道它在做什么并认为它是安全的,你可以使用系统管理门户(System Management Portal)或终端来杀死它。通过终端,可以找到该任务并终止它

%SYS>do ^JOBEXAM

查找工作编号并运行:

%SYS>DO ^RESJOB
 
Force a process to quit InterSystems IRIS
 
Process ID (? for status report): 7732

Process ID (? for status report):
 
%SYS>

⚠️只有在了解进程并确定安全的情况下才能停止进程!

选项 2:重启 IRISTEMP 并设置限制

清除 IRISTEMP,请停止 Iris,删除其 IRIS.DAT 文件并重新启动:

iris stop <instance_name>
rm /<iris_directory>/mgr/iristemp/IRIS.DAT
iris start <instance_name>

要在启动时重置 IRISTEMP 并将空间归还操作系统,可在 IRIS 配置中设置一个限制:

[Startup]
MaxIRISTempSizeAtStart=5000

更多详情,请参阅有关MaxIRISTempSizeAtStart 的官方文档。如果不这样做,IRISTemp 将清空,但会保持其臃肿的大小!为了更好地控制,可以考虑将 IRISTEMP 迁移到专用卷,或在 SMP 中设置最大 DB 大小。此外,社区中还有其他文章提供更多详细信息:如何缩小 IRISTEMP

方案 3:旧版本?升级!

如果您运行的是旧版本的 Iris,请升级!例如,我记得我们在 2021.1.1+ 中修复了一个错误,即 IrisTemp 可能会不受控制地增长。升级并使用最新的维护版本是避免已知错误的最好方法。

总结:控制 IRISTEMP

通过以下步骤,您可以

✅ 使用^%GSIZE^GETPPGINFO查找正在使用 IRISTEMP 的进程
✅ 停止占用过多 PPG空间的已知进程
✅ 通过设置限制或重新创建 IrisTemp 数据库来恢复空间

升级!始终建议这样做!

这样可以控制 IRISTEMP,避免存储问题

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください