弊社サポートセンターに、「IRIS SQLに Oracle の RANK() 関数のようものはありませんか?」というお問い合わせいただくことがあります。

IRIS2021.1以降のバージョンであれば、RANK() や ROW_NUMBER() などの ウィンドウ関数 がサポートされるようになりましたので、以下のように使用することができます。

1 0
0 157
記事
· 2020年12月16日 2m read
SQLインジェクションに対する対策

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

SQLインジェクションに関しては、様々なWebサイトで対策等が公開されていますが、InterSystems SQLを使ったアプリケーションでも、他のRDBMSと同様にそれらの対策を適切に実施することで、SQLインジェクションは防げると考えられます。

さらに、InterSystems Data Platform(以下IRIS)の場合、一般的なRDBMSに比較して、SQLインジェクションを実行しづらい、幾つかの施策が組み込まれています。

0 0
0 155

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

ジャーナル・ファイルの処理でジャーナルファイルに記録されるタイプが、それぞれどのような状況下で記録されるのかについて説明します。

0 0
0 155

以下、デプロイモード(配置モード)でプログラムを配布する方法を2つご紹介します。


① DB内のソースコードをデプロイモードでエクスポートする方法

② ソースコード用DBを用意してIRIS.datごとデプロイモードにする方法


①は、プログラムのみデプロイモードでエクスポート/インポートできるので、初回システム構築時はもちろん、プログラムの修正が発生した時などソースの一部のみエクスポートすることも可能となります。

②は、IRIS.dat ごとデプロイするので初回システム構築時に IRIS.dat のみ配置すればよく手順が単純です。

クラスがデプロイモードになると、そのクラスのメソッドとトリガのソースコードは削除されます。
クラスがデータ型クラスである場合、クエリキャッシュによって実行時にメソッド定義が必要になる可能性があるために、メソッド定義が保持されるのでご注意ください。

0 0
0 153

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

INFORMATION_SCHEMA スキーマを使用して取得できます。

INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルの SQL メニューに表示されません。

表示させる方法は以下の通りです。

  1. 管理ポータル→システムエクスプローラ→SQL メニューを開きます。
  2. スキーマのプルダウン左にある「システム」をチェックします。
  3. スキーマのプルダウンから INFORMATION_SCHEMA を選択します。

0 0
0 151

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

ディスクの空きスペースにもよりますが、ブロック別で最大サイズが異なります。

各バージョン共通で、8KBのブロックサイズを使用した場合は、32TBです。

バージョン2008.1以降のバージョンでは、8KB以外のブロックサイズを指定できるようになったため、最大サイズは以下の通りです。

  • 16KBのブロックサイズを使用した場合、64TB
  • 32KBのブロックサイズを使用した場合、128TB
  • 64KBのブロックサイズを使用した場合、256TB
1 0
0 151

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

24時間停止しないシステムの場合、「ジャーナルファイルの削除設定」に合わせて 0時30分 に古いジャーナルファイルを削除します。

「ジャーナルファイルの削除設定」より古いジャーナルファイルが残っている原因として、オープンされたままのトランザクションが存在していることが考えられます。

その場合、トランザクション実行中プロセスを探し、トランザクションを確定させることでジャーナルファイルを削除できるようになります。

以下のサンプルは、オープンされたままのトランザクションの存在確認と、存在する場合は対象ファイル名とジャーナルレコード情報が出力されます。

(サンプルは、https://github.com/Intersystems-jp/CheckOpenTransaction からダウンロードできます)

0 0
0 151

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

バージョン2017.2以降から、CREATE TABLE文で作成したテーブル定義のデータを格納するグローバル変数の命名ルールが変わり ^EPgS.D8T6.1 のようなハッシュ化したグローバル変数名が設定されます。(この変更はパフォーマンス向上のために追加されました。)

※ バージョン2017.1以前については、永続クラス定義のルールと同一です。詳細は関連記事「永続クラス定義のデータが格納されるグローバル変数名について」をご参照ください。

以下のテーブル定義を作成すると、同名の永続クラス定義が作成されます。

0 0
0 149

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

2022年3月9日開催「InterSystems Japan Virtual Summit 2022」のセッション「ミラーリングを使用した HA および DR の構成例」のアーカイブを YouTube に公開いたしました。

(プレイリストはこちら


ミラーリングは、IRIS インスタンス間のデータベースの複製およびフェイルオーバを行う機能です。

動画では、ミラーリングを利用した高可用(HA)なシステムおよびディザスタリカバリ(DR)に対応したシステムの構成例についてご紹介します。

ぜひご参照ください。

0 0
0 147

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

ObjectScript言語は、Java言語等がサポートしている型キャストをサポートしていません。

ただし、メソッドのキャストはサポートしています。

詳細は以下ドキュメントページをご参照ください。


メソッドのキャスト【IRIS】
メソッドのキャスト

0 0
0 145

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

データベースの空き容量は、システムモニタを使用して監視することができます。

システムモニタは、システム開始時に自動開始され、予め設定された閾値に対してアラートが通知されます。

0 0
0 144

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

$IsObject()を使用して判別できます。 調べたい変数をvとすると、

$IsObject(v)=1 // vはOREF
$IsObject(v)=0 // vはOREFではない
$IsObject(v)=-1 // vはOREFだが、有効なオブジェクトを指していない

となります。

vが未定義の場合は、$IsObject(v)はUNDEFINEDエラーとなりますので、ご注意ください。

UNDEFINEDエラーを防止するには、次のように$Getを使用することをお勧めします。

0 0
0 142

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

以下に当てはまる場合、差分バックアップではなくフルバックアップが取られます。

・リストの中に1つでもフルバックアップを取っていないデータベース(DB)が含まれるとき
・リストの中に読み込み専用のDBが含まれるとき
 →読込専用DBはバックアップが取れないため、対象リストのDBは毎回フルバックアップが取られます

ReadOnlyマウントしたDBをバックアップしようとすると、以下のようなログが出力されます。

WARNING - the following directories could not be backed up 
 c:\intersystems\ensemble\mgr\xxx\ (Database is readonly)


読込専用DBはバックアップリストから除く必要があります。

もし、読込専用DBをバックアップする場合は、別途バックアップする必要があります。

0 0
0 142

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

サーバ側ロジックの記載に使用する ObjectScript でのエラーが発生した場合の対処方法については「ObjectScriptでエラーが発生したら」にまとめています。

ぜひご参照ください!

0 0
0 142

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

外部バックアップ機能と、SANソリューションが提供するスナップショット(スナップクローン、ミラークローンなど呼び方はベンダ毎に異なります)などのテクノロジを利用することで、バックアップ時のインスタンス停止時間を最短にすることができます。

操作手順概要は以下の通りです。

0 0
0 139

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

アプリケーションモニタが提供する %Monitor.System.Diskspace(ディスク容量メトリック)を利用して指定サイズを下回る場合にメール通知を行うように設定を追加することができます。

アプリケーション・モニタのメトリック【IRIS】
アプリケーション・モニタのメトリック

1 0
0 138

特定文字列が含まれるグローバルを検索する時、どのように行われているでしょうか?

管理ポータルでグローバルを表示して Ctrl+F で検索することもできますが、サイズが大きなグローバルでは表示に時間がかかり難しい場合もあります。

もちろん、$ORDER や $QUERY 関数でループして含まれる文字列を検索することは可能です。

しかし、もっと簡単で便利な方法があります。

管理ポータルで行える、グローバル文字列検索機能 を使う方法です。

こちら、管理ポータルの [システムエクスプローラ] > [グローバル] :検索 から簡単に行えます

例えば、^%ISCLOGグローバルの中から「CSP error cleaning up after page」というエラーが含まれるグローバルを検索するときは以下のようになります。

1 0
0 137

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

システムユーティリティクラス:SYS.Database のクエリ:FreeSpace を利用してディスクの空き容量を任意のタイミングで確認することができます。

0 0
0 135

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

InterSystems製品では、永続データは後で高速にランダムアクセスできるように、ある一定の規則に沿ってキー順にソートされて格納されます。

新しいノードが追加された場合、ノードが削除された場合、データの長さが変更された場合など、データの構造変化が起こる度に、その並び順を維持できるようまた無駄な領域が発生しないように動的なデータの配置変えを実施します。

従って、常にデータはきれいに整理された状態で格納されるため、無駄な空き領域が発生しません。

これらの並べ替えの作業は、書き換えのコストのかかる処理ですが、InterSystems製品では、これらの処理はなるべくメモリ(キャッシュ)上で実行し、ディスクI/Oを軽減することにより、性能の劣化を抑えています。

0 0
0 133

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

InterSystems IRIS では、柔軟でユーザ拡張可能な監視ツールである「システムモニタ」をお使いいただくことが可能です。

システムモニタには、以下の3つのインスタンス監視ツールがあります。

1 0
0 133

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

リストコレクション(Property XXX As list of %String;)で定義したプロパティは、SQL関数: $LISTBUILD() 、$LISTFROMSTRING() を使用して操作できます。


各SQL関数については、下記ドキュメントページをご参照ください。

0 0
0 132

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

$ZHorologを使用します。

$ZHorologシステム変数はInterSystems製品を起動してからの経過時間(秒)を保持しています。

2点間の$ZHorolog値の差を取るだけで正確な経過時間を取得する事が出来ます。

詳しくは以下、ドキュメントをご参照ください。


$ZHorologについて【IRIS】


$ZHorologについて

この他、秒の小数部を含む時間の日付と時間の取得には $NOW, $ZTimeStamp が使用できます。

1 0
0 131

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

MM/DD/YY-hh:mm:ss:fff ( ) 0 [Utility.Event] Purging old application errors


こちらのメッセージは、エラーではなく、アプリケーションのエラーログを記録した古い ^ERRORSグローバルのパージ処理が実行された際に出力されるメッセージになります。ログを削除した旨のみを伝えるメッセージであり、出力されていても特に問題はありません。
また、このログは、^ERRORSグローバルのパージ処理がタスク実行される毎日01:00 に出力されます。

2 0
0 130

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

先日のウェビナーでご紹介した「ワークフローコンポーネント」をお試しいただけるサンプルを公開しました。👉 https://github.com/Intersystems-jp/WorkFlow-DC

《サンプルのテーマ》

店舗で販売している商品に付けるPOPメッセージ候補を予めテーブルに登録できる仕組みが既にある、と仮定しています。

IRISの Interoperability を利用してPOPメッセージ候補が登録されるテーブルに対して一定間隔でSELECT文を実行し、未処理のメッセージを取得します。
新たなレコードが存在する場合、ワークフローコンポーネントを利用して担当者に審査を依頼します。

担当者は、ワークフローユーザポータルを使用して、POPメッセージ候補の承認/却下を指示できるようにしています。

0 0
0 130

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

<PROTECT> エラーを解消するには、システム全体のライブラリデータベース(※)の読み込み専用属性を外します。

※ InterSystems IRIS の場合は IRISLIB、Caché/Ensemble/HealthShare(Cachéベース) の場合は CACHELIB

ルーチンのインポートが完了しましたら、読み込み専用に忘れずに戻すようにしてください。

【バージョン2013.1~】
[管理ポータル] > [システム管理] > [構成] > [システム構成] > [ローカルデータベース]
データベース名のリンクから「読み込み専用でマウント」のチェックを外します。

0 0
0 130

2021年12月13日 - 勧告: Apache Log4j2ライブラリの脆弱性がインターシステムズ製品に与える影響

インターシステムズは現在、Apache Log4j2に関するセキュリティ脆弱性の影響を調査しています。

1 1
0 130