$LIST のフォーマットと%DynamicArray、%DynamicObject クラス

IRIS には、様々なデータ値を含むシーケンスを作成する方法がいくつかあります (以前は Cache にもありました)。 長年に渡り使用されているデータシーケンスの 1 つに $LIST の文字列があります。 より最近のデータシーケンスには %DynamicArray クラスと %DynamicObject クラスがあり、両者ともに JSON の文字列表現に対応する IRIS サポートの一部となっています。 これら 2 つのシーケンスにはそれぞれ非常に異なるトレードオフがあります。

$LIST の文字列形式

$LIST 形式は、かつてメモリアドレスのスペースが小さいだけでなく、ディスクドライブも小さく、読み取り速度が遅かった時代に考案されました。 $LIST の形式は、複数の異なるデータ型で構成されるシーケンスをバイト数を可能な限り抑えながら 8 ビットの一般的な文字列にパッキングするためにデザインされました。

$LIST のシーケンスは、ObjectScript の $LISTBUILD 関数を使って作成します。

0 0
0 798

開発者の皆さん、こんにちは。

いつも使用しているユーザでアプリケーションや InterSystems 製品(IRIS/Caché/Ensemble/HealthShare) にアクセスしたとき、セキュリティ設定変更などの影響で急にアクセスできなくなった!という場合に、調査に便利な監査ログの参照方法をご紹介します。

ここでは、%Allロールを持つシステム管理ユーザ( _system や SuperUser )で管理ポータルにアクセスできる状態での確認方法をご紹介します。

監査ログですが、まずはシステムで監査が取られる設定になっているかご確認ください(通常無効化されている場合は、調査の時だけ有効に変更してください)。

管理ポータル > システム管理 > セキュリティ > 監査 > 監査を有効に

次に、アクセスできなくなった原因を探るため、以下のシステムイベントの監査を取得できるように変更します。

0 0
0 779

これは InterSystems FAQ サイトの記事です。

同一システムに InterSystems 製品を複数インストールした場合、ドライバマネージャに登録される InterSystems 用の ODBCドライバは、インストールされた製品の中で最新バージョンのドライバが登録されたままとなります。

以下のレジストリエントリを変更することで、任意のドライバへ変更できます。

なお、RegFiles.bat 実行では ODBCドライバは切り替わらないのでご注意ください。

レジストリエントリは、以下の通りです。

0 0
0 768

これはInterSystems FAQ サイトの記事です。

DATE 型は InterSystems 製品のデータ型の %Date に、TIME 型は %Time に対応しています。

%Date は内部日付(特殊変数 $Horolog のカンマ区切り1番目)、%Time は内部時刻($Horolog のカンマ区切り2番目)を登録するタイプであるため、サーバ側ロジックでは表示モードを切り替えない限り、内部(論理)形式の値が使用されます。
サーバ側ロジックで内部日付・時刻の表示形式を変更する方法は、操作方法により異なります。

以降の実行例では、Sample.Person テーブルを使用して解説します。
(コマンド実行例は SELECT 文で記載していますが、更新文に対しても同様に記述できます。)

2 0
0 752

前回は GKE サービスを使用して IRIS アプリケーションを Google Cloud 上で起動しました。

また、クラスターを手動で(または gcloud を介して)作成するのは簡単ですが、最新の Infrastructure-as-Code(IaC)手法では、Kubernetesクラスターの説明もコードとしてリポジトリに格納する必要があります。 このコードの記述方法は、IaC に使用されるツールによって決まります。

Google Cloud の場合は複数のオプションが存在し、その中には Deployment ManagerTerraform があります。 どちらが優れているかにつては意見が分かれています。詳細を知りたい場合は、この Reddit のスレッド「Opinions on Terraform vs. Deployment Manager?」と Medium の記事「Comparing GCP Deployment Manager and Terraform」を参照してください。

0 0
0 742

この記事と後続の2つの連載記事は、InterSystems製品ベースのアプリケーションでOAuth 2.0フレームワーク(簡略化のためにOAUTHとも呼ばれます)を使用する必要のある開発者またはシステム管理者向けのユーザーガイドを対象としています。

作成者:Daniel Kutac(InterSystemsシニアセールスエンジニア)

0 0
0 736

InterSystems IRIS 2021.2 のバージョンより、Embedded Python を使用できるようになりました。
Embedded Python については、「Embedded Pythonを簡単にご紹介します」の記事をぜひご覧ください。

こちらでは、Embedded Python を使用して Excel のデータを IRIS グローバルに出力する方法をご紹介します。

最初に、irispip コマンドで必要なライブラリをインストールします。
今回は、pandas、xlrd、openpyxl の3つのライブラリをインストールします。

3 2
1 692

開発者の皆さん、こんにちは。

AWSのEC2インスタンス(Ubuntu 20.04を選択)にIRISをインストールした環境を事前に用意した状態からの流れですが、AWS Lambda 関数からPyODBC経由でIRISに接続するまでの流れを試してみました。

以下の流れでご紹介します。

1. レイヤーを作成する

2. Lambda関数を作成する。

3. 1,2の流れをCloudformationで行う例

例で使用しているコード一式はこちらにあります👉https://github.com/Intersystems-jp/iris-pyodbc-lambda

0 0
0 730

これは InterSystems FAQ サイトの記事です。

あるユーザが「不活動上限」を超える期間にわたって、一度もInterSystems製品にログインしなかった場合、そのユーザは無効になりログインできなくなります。

なお、この設定の初期値は、インストール時の初期セキュリティによって変わります。
「通常」以上では既定値は90日間、「最小」では0日に設定されています。
ユーザを有効に変更することにより再びログインすることができるようになります。

2007.1以降であれば%Allを持つユーザが最低1つは残っていますので、そのユーザでログインできればそこから設定を変更します。(%Allを持つユーザは、インストール時のセキュリティ設定によって異なります)

使用できるものがわからないときは、InterSystems製品を緊急アクセスモードで起動してログインします。

<緊急アクセスモードからの復元方法>

0 0
1 730
記事
· 2022年2月4日 7m read
Embedded Python 試してみました

開発者の皆さん、Python好きの皆さん、こんにちは!

ドキュメントをみながら IRIS 2021.2 に追加された Embedded Python を試してみました!

IRIS にログインしてるのに Pythonシェルに切り替えできて Python のコードが書けたり、Python で import iris するだけで SQL を実行できたりグローバルを操作できるので、おぉ!✨という感じです。

ぜひ、みなさんも体感してみてください!

では早速。

まず、IRISにログインします。Windows ならターミナルを開きます。Windows 以外は以下実行します。

4 0
1 724

これはInterSystems FAQ サイトの記事です。

命名規約については、それぞれ下記のドキュメントページをご確認ください。

テーブル名(クラス名)について


識別子のルールとガイドライン - クラス

カラム名(プロパティ名)について


識別子のルールとガイドライン - クラス・メンバ

1 0
0 722

目的

CloudFormationの記事は、Linux系のものが多いですが、Windowsでも自動化したいという需要がありそうですので、オリジナル記事を元に、CloudFormationを使用してミラークラスターをWindowsサーバにデプロイする例を実装してみました。また、簡単な実行例も追加しました。
ソースコード一式はこちらのGitレポジトリにあります。

更新: 2021年3月1日 ワンライナーで踏み台ホスト経由でWindowsに公開鍵認証する方法を追記しました

更新: 2022年11月29日 QuickStartの形式に合わせて大幅に変更しました。以前の内容はこちらに保存してあります。

更新: 2022年12月21日 踏み台ホストの使用を止め、代わりにAWS System Manager(SSM)を有効化しました。プライベートサブネット上のインスタンスへのアクセスが簡素化されます。以前の内容はこちらに保存してあります。

0 0
0 722

これは InterSystems FAQ サイトの記事です。

各タイムアウト値の意味は以下の通りです。

(1) [サーバ応答タイムアウト]

この設定時間内に、IRIS/Caché での処理(ルーチンやクエリの実行)が終わらない場合は、ブラウザ側にエラーを返します。

例) この値が60秒の時に、ルーチン/メソッド/クエリ実行に 90秒 かかる場合にはエラーになります。

(2) [キューイングされたリクエストのタイムアウト]

CSP/REST で設定する IRIS/Caché サーバごとに、CSP/REST を同時実行できるプロセス数を制限できます。

1 0
0 715

これは InterSystems FAQ サイトの記事です。

このエラーが発生する原因としては、アプリケーションの中で既に他のプロセスからロック対象リソースがロックされていて、何らかの理由でそのロックが解放されていないケースが考えられます。

他のプロセスがロックしている兆候がない場合は、ロックテーブルの空き領域が不足しているケースが想定されます。
その場合は、メッセージログ(コンソールログ)に LOCK TABLE FULL のメッセージが出力されます。

トランザクション処理を行なっている場合には、ロック解放の延期が影響しているケースも考えられます。
トランザクションとロック解放の延期については、以下のドキュメントをご参照下さい。

1 0
0 710

これは InterSystems FAQ サイトの記事です。

Windowsのグループセキュリティポリシーに停止コマンドを記述したバッチファイルを登録する事により可能です。

手順は以下のとおりです。

1.Windowsのローカルコンピュータ・ポリシーのシャットダウンスクリプトに停止コマンドを登録します。
  停止コマンドを含んだbatファイルを作成します。

 CacheStop.bat ※InterSystems Caché の場合

c:\intersystems\cache\bin\ccontrol stop CACHE

 IRISStop.bat ※InterSystems IRIS の場合

1 0
0 700
記事
· 2021年12月28日 2m read
コンパイルフラグについて

これは InterSystems FAQ サイトの記事です。

コンパイル時のフラグや修飾子の記号と意味については、以下ドキュメントをご参照ください。


コンパイルフラグについて【IRIS】

コンパイルフラグについて

なお、開発環境のスタジオやVisual Studio Codeでは、開発環境の設定画面でフラグを変更できます。

1 0
0 697

開発者の皆さん、こんにちは!

この記事では、Embedded Pythonをご自身の好きなタイミングで学習できる📚セルフラーニングビデオ📚の YouTube プレイリストをご紹介します!

👆こんな具合に👆学習内容別 Embedded Python セルフラーニングビデオを公開しています!

この記事では、これから Embedded Python でプログラミングを開始してみたい方向けに最適なビデオをご紹介します!
​​​​​​

1 0
0 696

これは InterSystems FAQ サイトの記事です。

InterSystems 製品は複数の SQL 文を一度に受け付けませんので、SQL 文での複数結果セットのサポートはありませんが、ストアドプロシージャを作成して複数の結果セットを返すことができます。

以下、ストアドプロシージャの中では、 %SQL.Statement クラスを利用して SQL を実行し、結果セットを作成し、結果セットを呼び出し元に返すため、ストアドプロシージャ実行時に自動生成されるプロシージャ・コンテキスト(=%sqlcontext 変数に格納)の中に、結果セットを登録しています。

0 0
0 696

Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。

以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。 *実行は、%SYSネームスペースで行って下さい。*

1 3
0 635

これは InterSystems FAQ サイトの記事です。

<STORE> エラーは サーバ上のプロセスが使用しているプロセス個別メモリ容量が上限に達した場合に発生します。
このメモリはオブジェクトを開いたり、ローカル変数を使用することで消費されるものとなります。
このエラーは サーバ上のプロセスでメモリを大量に使用した場合に発生します。
Caché バージョン2012.2以降、プロセス個別のメモリ容量の最大値が大幅に拡張されました(約2TB)。

この変更により、ローカル変数の使用領域を大幅に増やすことができるようになったため 特別な状況が発生しない限り(プログラムのバグにより大量のローカル変数を作成し続ける等) エラーを回避できるようになりました。

但し、このためのメモリ領域は、プログラムが動作するハードウェアが提供する資源の一つですので物理的な制限は当然あります。
システム全体の資源管理を念頭に置き慎重な使用をお勧めします。

設定値詳細については以下ドキュメントをご参照ください。

0 0
0 692

1.本記事の内容

Caché パターンマッチングと同様に、Caché では正規表現を使ってテキストデータのパターンを特定することができますが、後者の場合はより高い表現力を利用できます。 本記事では正規表現を簡単に紹介し、Caché での活用方法について解説します。 本記事の情報は、主に Jeffrey Friedl 氏著作の「Mastering Regular Expressions (詳説 正規表現)」に加え、もちろん Caché のオンラインドキュメンテーションなど、様々なリソースを基に提供しています。 本記事は正規表現のあらゆる可能性や詳細について解説することを意図したものではありません。 更なる詳細にご興味のある方は、チャプター 5 に記載のソースを参照してください。 オフラインで読む場合は、PDF バージョンをダウンロードしていただけます。

0 0
1 686

開発者の皆さん、こんにちは!

ObjectScriptのコード実行中にエラーが発生した場合 "<UNDEFINED>HelloWorld+2^Simple.Demo.1 *name" のようなエラーメッセージが表示されます。

エラーメッセージの読み方については、ObjectScriptクックブックの「ObjectScriptでエラーが発生したら」のエラーメッセージの読み方 をご参照ください。

エラー行の特定を行う際、VSCodeのコマンドパレットを利用すると簡単に対象行にジャンプできますので、以下、方法をご紹介します。

1)VSCodeのView→Command Palette... を開きます。

2) 「ObjectScript:Open Error Location...」を選択します(初回は表示項目に登場しないため > の後ろに ObjectScript と入力すると表示されます)。

3) テキストボックスが表示されるので、エラーメッセージの出力情報の中から ラベル名+行数^生成ルーチン名 をコピーして貼り付け、Enterをクリックします。

※スタジオにも同様の機能がありますが、VSCodeの場合対象となるコード(生成コードの元コード)をVSCode上で表示していなくても対象となる生成ルーチンを開きエラー行をポイントしてくれます。

3 0
0 685

この記事はこちらの投稿の続きの内容です。

前回の記事では、システム統合に必要なコンポーネントの中から、ビジネス・オペレーションの作成について解説しました。

今回の記事では、確認した2つのビジネス・オペレーションを順番を守って呼び出しを行うビジネス・プロセスの作成について解説します。

0 0
0 683

これは、InterSystems FAQサイトの記事です。

以下の7つの技術を用いて、VB.NETからInterSystems IRISへ接続し使用することができます。

(A) InterSystems IRIS ADO.NET Managed Provider を利用する
InterSystems ADO.NET Managed Provider では、ADO.NET 準拠データベースとして InterSystems IRIS にアクセスでき、データへの簡単なリレーショナル・アクセスを提供します。特に ADO.NET を以前に使用したことのあるユーザにお勧めです。
詳細は、以下ドキュメントをご参照ください。
InterSystems IRIS ADO.NET Mnaged Providerについて

0 0
0 677

これはInterSystems FAQ サイトの記事です。

SELECT のみを実行できるユーザを作成するには、ユーザかロールに対してテーブルへのアクセス権限を設定することで対応できます。

設定は、管理ポータルか、GRANT 文を実行することで設定できます。GRANT 文については、以下ドキュメントもご参照ください。
InterSystems SQL リファレンス - GRANT【IRIS】
CachéSQLリファレンス - GRANT

管理ポータルでの設定は、ユーザまたはロールの編集画面内「SQLテーブル」タブを使用します。

0 0
0 672

IRIS で作成する REST サーバの仕組みを解説します。

https://www.youtube.com/embed/tWP_9-jk4no
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]


このビデオには、以下の関連ビデオがあります。

0 0
0 669

本記事について

InterSystems IRISは、管理ポータルへのアクセス方法がデフォルトではhttpとなっており、クライアントが社内、サーバがクラウドという配置の場合、なんらかの方法でトラフィックを暗号化したいと考える方も多いかと思います。
そこで、AWS上にて稼働中のIRISの管理ポータル(あるいは各種RESTサービス)との通信を暗号化する方法をいくつかご紹介したいと思います。

本記事では、アクセスにIRIS組み込みのapacheサーバを使用しています。ベンチマーク目的や本番環境のアプリケーションからのアクセス方法としては使用しないでください。
短期間・少人数での開発・動作検証・管理目的でのアクセスを暗号化する事を想定しています。

ドメイン名とメジャーな認証局発行のSSLサーバ証明書を用意できればベストなのですが、上記のような用途の場合、コスト面でなかなか難しいと思います。
ですので、下記の証明書の使用を想定しています。
- 自己署名(いわゆるオレオレ証明書)
- 自分で建てた認証局で署名した証明書(いわゆるオレオレ認証局)

また、下記のような実行環境を想定しています。

1 0
0 667

みなさん、こんにちは。

数日前、SOAP(Web)サービスを使用して、REST に基づく新しいアプリケーション API と同じ認証を使用できるように、既存のレガシーアプリケーションを拡張したい、とお客様から伺いました。 新しいアプリケーションは OAuth2 を使用しているため、課題は明らかでした。SOAP リクエストを含むアクセストークンをどのようにしてサーバーに渡すか、ということです。

Google でしばらく調べてみたところ、SOAP エンベロープにヘッダー要素を追加してから、アクセストークンを検証するために必要なことを Web サービス実装が実行できるようにするのが 1 つの実現方法であることがわかりました。

0 0
0 663