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

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

 

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

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

00
0 0 37

データベースシステムには非常に特殊なバックアップ要件があり、企業のデプロイメントでは、事前の検討と計画が必要です。 データベースシステムの場合、バックアップソリューションの運用上の目標は、アプリケーションが正常にシャットダウンされた時と同じ状態で、データのコピーを作成することにあります。 アプリケーションの整合性バックアップはこれらの要件を満たし、Cachéは、このレベルのバックアップ整合性を達成するために、外部ソリューションとの統合を容易にする一連のAPIを提供しています。

00
0 0 48

1.本記事の内容

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

00
0 0 55

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 7 回目のテーマが発表されました!

今回のコンテストのテーマは ⚡️ InterSystems Interoperability(相互運用性) Contest ⚡️ です!

日本からのご応募お待ちしております!

応募期間は 2020年11月2日~15日 です!

(投票期間は 2020年11月16日~22日、勝者発表は 11月23日を予定しています)

00
0 2 76

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

Interoperability(相互運用性)コンテストの続報の「テクノロジーボーナス」について紹介します。

対象となる技術は、以下の通りです。

  • BPL エディタを利用したビジネス・プロセスの開発、または、ビジネスルールとデータ変換(DTL)を使用した開発
  • カスタムアダプタを使用した開発
  • プロダクションエクステンション(PEX)Java または .NET を使用した開発
  • ワークフローエンジンを使用した開発
  • ZPM パッケージによるデプロイが行える開発環境
  • Docker コンテナを使用した開発

それぞれの詳細については以下ご参照ください。

 

00
0 0 32

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

1変数に最大 3,641,144 文字まで格納できます。

この制限は、InterSystems IRIS上で取り扱う全ての文字列が対象となるため、ローカル変数やメソッドの引数・戻り値も対象となります。

最大文字について詳しくは、以下ドキュメントをご参照ください。

最大文字列長について

 

00
0 0 20

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

起動時に、 CTELNETD startup error: bind(sock) failed Telnet23ポートは別ソフトでは使用していません。というエラーが発生する場合の対処法です。

 

現在、InterSystems製品と以下のソフトの組み合わせで、この現象が発生することがわかっています。

00
0 0 78

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

以下のようにユーザ名、パスワードを引数に持ち、認証が成功した場合はユーザ名、失敗したときは""(NULL)を返すルーチン(SecTest^SecTest)を作成し、標準の認証システムを書き換えることができます。

 

SecTest(user,pass)
 // user1のパスワードがuser1の場合、認証OKのログを作成
 if user="user1",pass="user1" {
  set ^sqllog($i(^sqllog))="認証OK;"_$horolog_";"_user
  quit user
 }
 // 認証できなかった場合、認証NGのログを作成
 set ^sqllog($i(^sqllog))="認証NG;"_$horolog_";"_user
 quit ""

 

00
0 0 19

これは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を使用することをお勧めします。 

 

$IsObject($Get(v))
00
0 0 22

皆さん、こんにちは!

InterSystems IRIS には [Interoperability(相互運用性)]というメニューがあります。

このメニューには、システム統合を簡単に作成できる仕組み(アダプタ、レコードマップ、BPM、データ変換など)が用意されていて、異なるシステムを簡単に接続することができます。

例えば、普段繋がっていないシステムを繋げるために相手の仕様に合わせてデータを受信(または送信)したり、データ送信前に別システムから情報を取得して追加したり、データベース(IRIS でもそれ以外でも)から情報を取得したり更新したり、データ中継の流れの中に様々な処理を含むことができます。

 

10
0 0 140

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

この記事では、Interoperability(相互運用性)メニューを利用してシステム統合を行う際、どのような仕組みで動作しているのかについて解説します。

 

 

図の左側は、外部システムから送信される情報の受け入れ窓口です。

情報の受信方法としては、ファイルを読むために指定ディレクトリを一定間隔で監視したり、データベースへ定期的に問い合わせを行ったり、入力を待機したり、または他システムのアプリケーションから直接呼び出して渡してもらうなど、様々な方法を用意しています。

10
0 0 90

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

前回の記事では、Interoperability(相互運用性)メニューを利用してシステム統合を行う際、どのような仕組みで動作しているのかについて解説しました。

今回の記事では、Interoperability(相互運用性)メニューを利用してでシステム統合を行うためにどのような開発を行うのか、について解説します。

最初に、どんな流れを作りたいのか?を考えながら、以下の内容を作成していきます。

00
0 0 89

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

前回の記事では、プロダクションとは?について確認しました。また、サンプルコードを動かしながらプロダクションに流れるメッセージの中身をトレース画面で確認しました。

今回は記事では、システム統合を行うための必要な開発内容の中から、コンポーネント間のデータ送受信に使用される メッセージ について、作成するときの考え方や定義方法を確認していきます。

00
0 0 63

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

前回の記事では、コンポーネント間のデータ送受信に使用される メッセージ について、作成するときの考え方や定義方法を確認しました。

今回の記事では、コンポーネントの作成方法の中から、ビジネス・オペレーションの作成について解説します。

00
0 0 80

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

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

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

00
0 0 55

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

前回の記事では、システム統合に必要なコンポーネントの中から、プロダクション内の処理の調整役となるビジネス・プロセスの作成について解説しました。

今回の記事では、プロダクションの情報入力窓口である、ビジネス・サービスの作成について解説します。

00
0 0 73

Docker環境下でWebアプリのコンテナとIRISのコンテナをRESTfulAPIで連携した時の
SSL化方法。
ちなみにこの方法で管理ポータル等もSSL通信が可能になります。

参考サイト:
* https://one-it-thing.com/63/

構成

※ Vue.jsはローカル上でホットリロードを利用した開発環境。
※ IRISはローカル上に構築したDockerコンテナ下で稼働中。

今回、IRISをDockerコンテナで稼働させる方法は割愛します。

20
0 2 102

Vue.jsのホットリロードを使った環境においてWebアプリケーションを開発しています。Webアプリケーションから開発環境と同じローカルPCにあるDocker上のIRISへ%RESTを使用しRESTfulAPI通信をしていますが、Webアプリケーションをhttpsで利用した場合は、httpsからhttpへはAPI通信ができないので、間にプロキシサーバーを立ててリダイレクトしないといけないと思います。しかし上手くいきません。

○ npm run serve で起動したWebアプリ http -> httpでIRISの%RESTを呼び出せる。

× npm run serve -- --https で起動した場合  https -> http は呼び出しできない。

  https -> プロキシサーバ(https-httpへリダイレクト)-> httpでIRISの%RESTが呼びさせるはず。

環境

Webアプリ:Vue.js 例)https://localhost:3014/

00
0 7 99

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

ネットワーク共有フォルダ/ネットワークプリンタにアクセスしたい場合、以下の2つの方法があります。

A. net use コマンドを使用する方法
B. IRISの起動ユーザを変更する方法

詳細は以下をご覧ください。

------------------------------------------------------------------------------------------
【方法A】net use コマンドを使用する方法
------------------------------------------------------------------------------------------

1) IRIS からネットワーク共有フォルダへのアクセスを許可する場合、以下のコマンドを実行するように SYSTEM^%ZSTART に記述します。

00
0 0 28

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

Windowsでは、以下イメージ名のプロセスを監視対象としてください。

[irisdb.exe]
重要なシステムプロセスが含まれています。
※ 監視対象にすべき重要なシステムプロセスを確認する方法は、添付をご参照ください。

[IRISservice.exe]
IRISインスタンスをサービス経由で扱う為のプロセスになります。
このプロセスが終了すると、IRISインスタンス自体には直接影響はありませんが、IRIS の停止(サービスの停止)ができなくなります。

00
0 0 39

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

%Net.HttpRequest クラスの SSLConfiguration プロパティに SSL/TLS 構成の「クライアント」構成名が指定されているかご確認ください。

%Net.HttpRequest クラスを使用して、https の url にアクセスするためには、以下のドキュメントに記載されている SSL/TLS 構成 の「クライアント」構成を作成して指定した名前を SSLConfiguration プロパティに指定する必要があります。

SSL/TLS構成のクライアント構成方法

00
0 0 34
記事
Toshihiko Minamoto · 2020年10月22日 7m read
JSONの機能強化

InterSystems IRIS 2019.1は公開されてからしばらく経ちますが、気づかれていない可能性のある、JSONの処理の強化機能について説明したいと思います。 最新のアプリケーションを構築する際、特にRESTエンドポイントを操作する際は、JSONをシリアル化形式として扱うことが重要です。

00
0 0 58

リモートや在宅での勤務が一般化しつつあります。

そのため、今までの集中型、オンサイトの開発体制を見直し、分散型の開発体制への移行を進めておられるユーザさんも多いのではないかと思います。

VSCodeを使用したIRISアプリケーションの開発が、コミュニティーを中心に広まり始めて久しいですが、Gitとの相性が良いこの開発ツールが今後さらに浸透していくことは間違いありません。あちらこちらで、その使いまわし方が語られていますが、ここでは、ソースコントロールとの関連を中心にご紹介したいと思います。

ObjectScript Extensionの使い方の基本については、こちらこちらをご覧ください。

 VSCode InterSystems ObjectScript Extensionのプロダクションリリース(V1.0.x)の配布が始まりました。  

20
1 0 244
記事
Toshihiko Minamoto · 2020年10月19日 5m read
SQL パフォーマンスリソース

SQL パフォーマンスリソース

SQL のパフォーマンスについて語るとき、最も重要なトピックとして取り上げられるのが「Indices」、「TuneTable」、「Show Plan」の 3 つです。  添付の PDF にはこれらのトピックに関する過去のプレゼン資料が含まれていますので、それぞれの基礎を一度に確認していただけます。  当社のドキュメンテーションでは、これらのトピックの詳細に加え、SQL パフォーマンスの他のトピックについてもカバーしておりますので、下のリンクからお読みください。  eラーニングをご利用いただくと、これらのトピックをもっと深く理解していただけます。  また、開発者コミュニティによる記事の中にも SQL パフォーマンスについて書かれたものが複数ありますので、関連するリンクを下に記載しております。

下に記載する情報には同じ内容が多く含まれています。  SQL パフォーマンスにおける最も重要な要素を以下に紹介します。

  • 利用可能なインデックスの種類
  • あるインデックスの種類を他の種類の代わりに使用する
  • TuneTable がテーブルに集める情報とそれが Optimizer に対して意味する内容
  • Show Plan を読んでクエリの善し悪しを深く理解する方法
  • 00
    0 0 25

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

    2つのステップにて作業します。

    クラス定義の移行

    クラス定義を別システムへ移行するため、XML形式またはUDL形式(拡張子.cls)のファイルにエクスポートします。

    スタジオでのエクスポート手順は以下の通りです。

    [ツール] > [エクスポート]

    > [追加]ボタンで移行したいクラスを複数選択

    > [ローカルファイルにエクスポート]にチェック

    > ファイルの種類がXMLであることを確認し、ファイル名を入力し、[OK]

    この後、別システム上のスタジオで、エクスポートしたXML、UDLファイルをインポートします。

    この手順で、クラス定義は移行できます。

    スタジオでのインポート手順は以下の通りです。

    [ツール] > [ローカルからインポート]

    > 上記手順で出力したXML、UDLファイルを指定します。  

     

    00
    0 0 28
    記事
    Hiroshi Sato · 2020年10月19日 3m read
    LinuxでのKernelパラメータ値の設定

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

    一部のKernelパラメータはInterSystems製品を稼働するためには、不適切な値となっているため、調整する必要があります。

    shmmax (共有メモリセグメントの最大値)

    共有メモリにあわせたshmmaxの値は以下の a)、b)、c)、d)の合計値になります。

    a) データベースバッファ(Mbytes)

    b) ルーチンバッファ(Mbytes)

    c) 一般メモリヒープ(Kbytes)

    d) バッファ等の管理ための領域    18 (Mbytes) + (データベースバッファ(Mbytes) +ルーチンバッファ(Mbytes)) x 0.05 (Mbytes)

    shmall (総共有メモリサイズ) システムで使用する共有メモリの合計サイズになります。

    単位はページ(4Kbytes)です。

    この値は少なくとも使用する共有メモリサイズ以上にする必要があります。

    shmmni (共有メモリセグメント数) 通常既定値で問題ありません。

    使用するセグメント数は1つです。

    00
    0 0 128

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

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

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

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

    10
    0 0 26

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

    $ZHorologを使用します。

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

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

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


    $ZHorologについて【IRIS】


    $ZHorologについて

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

    10
    0 0 22