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

%ZSTARTルーチンを インスタンス開始時に起動しないように構成設定用ファイルを手動で変更します。

【注意】
インスタンスの起動環境の変更は、通常管理ポータルで行うものなので、以下に説明する方法は、%ZSTART の SYSTEM ラベルの動作を無効化する方法以外では利用しないようにしてください(別のパラメータを誤って修正してしまった場合、起動できなくなる可能性がありますのでご注意ください)。

1. インスタンス のインストールディレクトリ以下にある構成設定用ファイル(cache.cpf/iris.cpf)をテキストエディタで開きます。
 ※構成ファイルは、事前にバックアップ(コピー)していただくことを推奨します。

2. [Startup]セクションにあるSystemStartの値を0に変更し、保存します。

3. ファイル変更後、一旦 インスタンスを通常の方法で停止し、再度開始してください。

00
0 0 11

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

連番を生成する関数($INCREMENT)を使用してユニークな番号を自動付番することができます。

 

SQLのSELECT文で使用する場合には OracleのSequence相当の機能を実装したクラスを利用する方法があります。

 

サンプルを以下のGitHubリポジトリより取得することができます。

 

OracleのSequence機能を実装するサンプル

 

00
0 0 22

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

$SYSTEM.Process.TerminalPrompt() を使用してターミナルのプロンプトを変更できます。

プロンプトの表示形式は、以下情報の組み合わせで指定できます。

  1.  ホスト名
  2. 現在のネームスペース
  3. 構成名
  4. 現在の時刻
  5. PID: オペレーティングシステム上でのプロセスID
  6. ユーザーネーム
  7. 最後のコマンドを実行してからの経過時間

例えば、Do $SYSTEM.Process.TerminalPrompt(1,3) ではホスト名と構成名をターミナルのプロンプトとして表示します。 

*実行例は、ホスト名="HOST1"、構成名="IRIS"*

USER>Do $SYSTEM.Process.TerminalPrompt(1,3)
HOST1:IRIS>

 

00
0 0 26

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

SELECT ... FOR UPDATE は明示的な行ロック取得の方法として多くの RDBMS で実装されているため、この機能を使われているケースも多いと思います。

このシンタックスは InterSystems 製品ではエラーにはなりませんが、期待されるような行ロックの取得は行われません。

この記事では同等の機能を実現する方法をご紹介します。

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... name を表示
... 終了ならLOOPをEXIT
END LOOP
CLOSE C1

 

上記のようなSQL文は、下記のSQL文で代替可能です。

00
0 0 44

Python から InterSystems IRIS へ接続する方法の1つである「PyODBC」(※)の利用方法をご説明します。

※ Python からのアクセスは、PyODBCの他に、Native API を利用した接続方法もあります。Native APIを利用してIRISのグローバル変数にアクセスする方法については、別の記事でご説明します。

00
0 1 90

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

第8回 Analytics コンテスト続報 📣 の「テクノロジーボーナス」について紹介します。

  • InterSystems IRIS BI(旧DeepSee)
  • InterSystems IRIS NLP
  • IntegratedML
  • 実データの利用
  • ZPM を利用したパッケージの開発
  • Docker コンテナの利用

ボーナス詳細は以下ご参照ください。

00
0 0 26

皆さん、こんにちは。

ストリームデータをデータベースに格納する場合、ファイルなどから読み取る際に漢字コード変換を行い、Unicode形式で%GlobalCharacterStreamに格納されるかと思いますが、時々、バイナリのままで読み込んでしまい、漢字コード変換を行わないといけない状況があるかと思います。


ファイルストリームでしたら%FileCharacterStreamクラスのTranslateTableプロパティに元の漢字コードを指定すれば、以下のようにコード変換しながら読みだすことは可能です。

00
1 0 38

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

以下の例では Test.Class2 クラスの Images プロパティに画像ファイルが保存できるように定義しています。
input() メソッドを利用して画像ファイルを Images プロパティに登録し、データベースに保存したとします。

00
0 0 36

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

InterSystemsの製品には同時ユーザー数でライセンスの容量を決定する製品とサーバーのCPUコア数で容量を決定する製品の2種類があります。

同時ユーザー数ライセンスタイプの場合、CPUコア数により使用可能なライセンスのグレードに制限があります。

物理サーバーの場合には、そのサーバーが保持しているCPUコア数の総数をカウントします。

そして、その総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。

サーバー仮想化ソフトウェア(VMWare、Hyper-Vなど)を利用する場合には、その仮想サーバーに割り当てられたCPUコア数をカウントします。

同様にその総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。

CPUコア数ライセンスタイプの場合、コア数によりライセンスの容量が決まります。

00
0 0 34

これは、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をバックアップする場合は、別途バックアップする必要があります。

 

00
0 0 18

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 第7回の勝者が発表されたばかりですが、第8回のテーマが発表されました!

今回のコンテストのテーマは 🏆 InterSystems Analytics Contest 🏆 です!

さぁ、年内最後のコンテストです!日本からのご応募お待ちしております!

応募期間は 2020年12月7日~20日 です!

(投票期間は 2020年12月21日~27日、勝者発表は 12月28日を予定しています)

00
0 0 61

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

(a) 現在使用中のライセンス数:現時点のライセンスユニット使用数です。

(b) 最大ライセンス使用:インスタンスが起動した後、現在に至るまでで最もライセンス使用の大きかった時点の
            "現在使用中のライセンス数"です。

(c) 許可されたライセンス数(Cache.Key/iris.keyの値):該当システムで許可されている最大ライセンスユニット数です。

(d) 現在の接続:現時点のクライアントからの接続数です。

(e) 最大接続:インスタンスが起動した後、現在に至るまでで最も接続数の大きかった時点の"現在の接続"です。

00
0 0 35
記事
Tomoko Furuzono · 2020年11月24日 1m read
IRISTempデータベースの縮小方法

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

MaxIRISTempSizeAtStartという構成パラメータを設定することにより、IRIS起動時のIRISTempデータベースの最大サイズを設定できます。

システムは、設定後、次のIRIS起動時に、設定された値(MB)にIRISTempの切り捨てを行います。 指定した MaxIRISTempSizeAtStart よりも現在サイズが小さい場合は、切り捨ては行われません。
また、0 を指定すると切り捨てが行われないため、サイズは変わらないまま起動します。(デフォルト) 設定は、以下メニューから行います。

管理ポータル
[システム管理]>[構成]>[追加の設定]>[開始]>"MaxIRISTempSizeAtStart"

00
0 0 22

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

IRISおよびIRISforHealthのランチャーからドキュメントをポイントすると、Web上の英語ドキュメントを参照します。

以下の設定ファイルを下記のように修正することにより、ランチャーから日本語ドキュメントを参照できるようになります。

<インストールディレクトリ>\httpd\conf\httpd-doc.conf

【IRIS】
[変更前]
Redirect /csp/docbook/ http://docs.intersystems.com/iris20201/csp/docbook/ 
[変更後]
Redirect /csp/docbook/ https://docs.intersystems.com/iris20201/csp/docbookj/ 

00
0 0 34

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

第7回 InterSystems IRIS プログラミングコンテスト(Interoperabilityコンテスト) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。

今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します!

🏆  審査員賞 - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。 

00
0 0 29

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

 1. エクスポートAPI

a. ルーチンを個別に指定してエクスポートする場合は、$system.OBJ.Export() を使用します。

例: 

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

 

指定する形式は ルーチン名.拡張子 で、拡張子は mac,bas,int,inc,obj を指定します。

エクスポート中のエラーは errors に格納されます。

$system.OBJ.Export() の詳細はクラスリファレンス %SYSTEM.OBJ を参照してください。

b. ワイルドカードを使用してエクスポートする場合にも、$system.OBJ.Export() を使用します。
例: 

00
0 0 24
記事
Hiroshi Sato · 2020年11月23日 1m read
変数等命名規約について

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

変数等命名規約に関して、InterSystems自体が定めている規則の様なものはありません。

しかし、チームで開発を行う際には、何らかの命名規約を作ることをお勧めします。

一般的には、変数名から使用目的が容易に想像できる様な名前付けが好ましいです。

名前の長短で、実行性能には有意な差はないと考えて結構ですので、一目見て内容が理解しやすく、他の名前と明確な区別ができるよう、ある程度の長さを持った命名を心がけることをお勧めします。

また、先頭のアルファベットを大文字にする、単語の先頭は大文字にするというのが一般的です。
しかし、昨今は、Javaで良く使われる、先頭は小文字で初めて、途中の単語の始まりを大文字にするという命名規約を使う開発者も増えてきました。

さらに変数のタイプ(一時変数、パラメータなど)がわかるように、先頭の文字で表現する方法もよく使われます。
(例: tSC,pLengthなど)

00
0 0 26

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

バックアップには、以下4種類の方法があります。

  1. 外部バックアップ
  2. オンラインバックアップ(コンカレントバックアップ)
  3. コールドバックアップ
  4. レガシー並行外部バックアップ

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

バックアップの方法について【IRIS】
バックアップの方法について

00
0 0 30

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

現在ご覧いただいている開発者コミュニティの中では、初心者(beginner)タグ があり、下記セルフラーニング用資料/ビデオをご用意しています。ぜひご参照ください。

00
1 0 58

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

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

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

 

00
0 0 35
記事
Hiroshi Sato · 2020年11月16日 1m read
メソッドのオーバロードについて

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

InterSystems ObjectScript言語では引数の異なる同名のメソッドを定義することはできません。

InterSystems ObjectScript言語は一般的に動的言語と呼ばれるプログラミング言語に分類されます。

ObjectScriptではメソッド実行時にどの引数を使用するかどうかは自由に制御可能ですので、動的プログラミング言語ではないJava等の言語と異なり、コンパイルの段階で厳密に引数の数でメソッドを区別する必要がありません。

従って ObjectScript言語は、オーバーロードと一般に呼ばれる言語仕様を含んでいません。

Java等で記述されたプログラムを移植する際にオーバーロード相当の機能を実現するには、

ClassMethod test(args... as %String)

 

のように引数の後ろに ... を付加します。

00
0 0 34

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

第 7 回 IRIS プログラミングコンテストの Interoperability コンテストの投票が始まりました!

これだ!と思う応募作品にぜひ投票お願いします!

投票は、Expert Nomination または Community Nomination のどちらかで行っていただきます。

Experts Nomination

00
0 0 29

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

管理ポータルから行う手動のパージ(Purge)と、タスクを利用する方法があります。

データを手動でパージするには、[Interoperability] > [管理] > [管理データの削除] ページを使用します。
(このページではバックグラウンド・ジョブとしてパージを実行しますので、ページがタイムアウトしても問題ありません。)

タスクでパージする場合は、[システムオペレーション] > [タスクマネージャ] > [新しいタスク] の画面でInteroperabilityプロダクションのネームスペースを指定し、タスクタイプに「Ens.Util.Tasks.Purge」を指定します。

タスクの場合は、「TypesToPurge」の項目で以下のパージ対象タイプを選択できます(図参照)。

00
0 0 32

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

システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。

^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。

なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。

 

詳細については、下記ドキュメントもご参照ください。

00
0 0 37

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

インデックスが複数定義されているクラス/テーブルへ csv 形式等のシーケンシャルファイルから大量データをデータベースに登録する際、推奨される登録方法として、データ登録時インデックスを生成させず、登録完了後に一括でインデックスを生成する 方法があります。

この方法は、新規に大量のレコードを一括登録する際に最も有効な手段となります。

<メモ>
大量のデータを追加登録する際には、既存のデータ量と新規データ量のバランスにより、この手法が有効でないケースもあります。その場合は、インデックスの再構築を範囲指定で行うこともできます。

 

説明に使用するクラス定義例は以下の通りです。

00
0 0 48

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

IRISのサービスを /usr/lib/systemd/system/iris.service に作成し systemctl ユーティリティにて設定を行います。

手順は以下になります。 ※ 作業は root ユーザまたは root 権限を持つユーザで行ってください。

1. IRISの自動起動・自動停止のスクリプトファイル「irisstartstop」を作成します。

irisstartstop

00
0 0 42

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

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

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

 

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

00
0 0 38
記事
Mihoko Iijima · 2020年11月6日 4m read
外れ値について

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

 

テーブルチューニングを行った際に、フィールドに値がほとんど登録されていない(Null)場合や、特定の値がほとんどを占める場合、その値を [外れ値] として除外して選択性計算を行います。 また、外れ値が全レコードの何 % を占めているかの値[外れ値の選択性] として記録されます。

InterSystems 製品のクエリオプティマイザは、選択性数値とエクステントサイズを使用してクエリの経路を決定しますが、クラスクエリ、埋め込み SQL に使用しているクエリに外れ値が含まれる場合は、外れ値の選択性が自動的に考慮され、インデックスの使用有無を決定しています。

00
0 0 51