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

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

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

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

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

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

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

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

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

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

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

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

    クラス定義の移行

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

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

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

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

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

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

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

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

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

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

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

    0 0
    0 136
    記事
    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つです。

    0 0
    0 1,977

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

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

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

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

    2 0
    0 215

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

    $ZHorologを使用します。

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

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

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


    $ZHorologについて【IRIS】


    $ZHorologについて

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

    1 0
    0 77

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

    この記事では「グローバルを誤って削除してしまった!」という場合の対処方法をご紹介します。

    誤って削除してしまった特定のグローバルを復旧するためには、バックアップファイルとジャーナルを使用します。
    復旧は、^ZJRNFILTユーティリティによるジャーナルリストアで条件を指定してジャーナルレコードをリストアする方法で行います。
    この方法で、ある時点のデータベースのバックアップに対して、削除が含まれるジャーナルレコードについて特定グローバルを削除するまでのものを適用することができます。

    ^ZJRNFILTユーティリティの詳細については、以下のドキュメントをご参照ください。

    0 0
    0 169


    こんにちは!

    この記事では、IRIS から Caché、Ensemble、HealthShare など、InterSystems の製品で使用されるクラスやその構造を理解するのに役立つツールの概要を簡単にまとめています。

    つまり、そのツールはクラスやパッケージ全体を視覚化し、クラス間の相対関係を示し、ディベロッパーやチームリーダーに必要な情報をすべて提供してくれるので、わざわざ Studio に移動してコードを調べる必要が省けます。

    InterSystems の製品について情報を集めている方からたくさんのプロジェクトをレビューしている方、または単純に InterSystems Technology ソリューションの新機能に興味がある方まで、ObjectScript Class Explorer の概要をぜひお読みください!

    1 0
    0 140

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

    InterSystems IRIS Native API for Java のメソッドに、IRIS クラスメソッドを呼び出す classMethod***() があります。
    ObjectScript メソッドおよび関数の呼び出し

    こちらを使用することで、InterSystems IRIS Native API for Java から InterSystems IRIS のクラスメソッドを呼び出すことが可能です。
    以下、使用方法について簡単なサンプルをご紹介します。

    *SampleNativeAPI .java

    1 0
    0 108

    GraphQLは、クライアントとサーバー間のミドルウェア層として機能する、データ構造とデータアクセスのメソッドを選択するための標準です。 GraphQLについて聞いたことがない方は、ここここここにある、有用なオンラインリソースをご覧ください。

    この記事では、InterSystemsテクノロジーに基づいて、プロジェクトでGraphQLを使用する方法を説明します。

    0 0
    0 185
    記事
    Henrique Dias · 2020年10月8日 2m read
    概要 npm-iris

    npm-iris とは何ですか?

    N.P.Mは "No Project Mess "の略です。

    N.P.M.は、InterSystems IRISとBootstrap 4を使用したプロジェクト&タスク管理アプリです。

    No Project Messは、シンプルで直感的なプロジェクトとタスクの管理ソフトウェアで、開発者や中小企業が日々の複雑な問題を軽減できるように作成されています。

    スプレッドシート、カンバン、カレンダー、ガントチャートなど、タスクのためのさまざまなビューを提供しています。

    0 2
    0 87

    CachéとCosFakerを使ったテスト駆動開発の簡単な紹介

    読了****目安時間: 6分

    皆さん、こんにちは。

    私がTDDに初めて出会ったのは約9年前のことです。すぐに夢中になってしまいました。
    最近は非常に人気が出てきているようですが、残念ながら多くの企業ではあまり使われていないようです。 また、主に初心者の方ではありますが、一体それがなんであるのか、どのように使うのかといったことさえも知らない開発者もたくさんいます。

    1 0
    0 201

    ここで紹介するサンプルは、以下のGitHubから入手可能です。

    IRIS .Netサンプル

    jpegファイルを読んで、IRISデータベースに格納するサンプル

    上記GitHub上のinsertbinary\insertbinary\binread.csというファイル名です。

    処理内容は、ファイルシステム上のjpeg形式のファイルを読み込んで、BLOB形式でIRISデータベースに格納します。

    Caché ではADO.NET Managed Providerを使用して実装していましたが、それをIRISのInterSystems Managed Provider for .NETを使用して書き換えました。
    (名前が変わっていますが、ADO.NETに関しては、機能はほとんど同じです)

    従って、厳密に言うと.Net Native APIを使用していませんが、コネクションオブジェクトの使用方法は共通なので、この部分は、Native APIを使用していると言うこともできます。

    0 0
    0 224

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

    DBLatency の Warning メッセージは、ヘルス・モニタプロセスが定期的にデータベースからのランダム読み取りが完了するまでに要した時間(ミリ秒)を計測していて、設定されている閾値(1000 msec)を超えた場合に出力されます。

    mm/dd/yy-18:31:15:060 (2932) 1 [SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1510 ( Warnvalue is 1000).


    上記例では、C:\xxx\IRIS.DAT(または C:\xxx\CACHE.DAT)へのディスク読み取り I/O に 1510 msec かかったことを示していて、メッセージ出力時のディスク I/O 応答速度が遅いことが考えられます。

    ディスク I/O 応答速度が遅い原因としては、ディスク I/O 負荷が高いことが考えられます。

    0 0
    0 127

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


    LAST_IDENTITY() SQL関数を使用すると取得できます。
    ※ この関数は、埋め込み SQL または ODBC 利用時に使用できます。ダイナミック SQL、SQL シェル、または管理ポータルの SQL インタフェースによる値には設定されません。

    簡単な埋め込み SQL での例をご紹介します。

    0 0
    0 237

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

    言語バインディングなどのサーバクライアント型で接続した場合、クライアントの情報は以下の処理で取得できます。

    set client=$PIECE($ZIO,"/")

    サーバがWindowsの場合、上記にクライアントマシン名が格納されます。

    そこで

    set ip=$system.INetInfo.HostNameToAddr(client)

    とすれば、IPアドレスが取得できます。 サーバがLinux等のUNIX系の場合、変数clientにはクライアントマシンのIPアドレスが格納されます。

    0 0
    0 200

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

    コンソールログ(message.log/cconsole.log)に、以下のようなログが出力される場合があります。

    MM/DD/YY-hh:mm:ss:sss (pid) 2 CP: Pausing users because the Write Daemon has not shown
    signs of activity for xxx seconds. Users will resume if Write Daemon completes a
    pass or writes to disk (wdpass=yyyy).


    このメッセージは、コントロールプロセスが出力しています。
    このプロセスは、ライトデーモン(WriteDaemon)等の主要なシステムプロセスを監視しています。

    0 0
    0 159

    Amazon Web Services(AWS)クラウドは、コンピューティングリソース、ストレージオプション、ネットワークなどのインフラストラクチャサービスの幅広いセットをユーティリティとしてオンデマンドかつ秒単位の従量課金制で提供しています。 新しいサービスは、先行投資なしで迅速にプロビジョニングできます。 これにより、大企業、新興企業、中小企業、公営企業の顧客は、変化するビジネス要件に迅速に対応するために必要なビルディングブロックにアクセスすることができます。

    更新: 2019年10月15日

    0 0
    1 712
    記事
    Tomoko Furuzono · 2020年9月17日 17m read
    SQLクエリパフォーマンスの監視

    Caché 2017以降のSQLエンジンには新しい統計一式が含まれています。 これらの統計は、クエリの実行回数とその実行所要時間を記録します。

    これは、多くのSQLステートメントを含むアプリケーションのパフォーマンスを監視する人や最適化を試みる人にとっては宝物のような機能ですが、一部の人々が望むほどデータにアクセスするのは簡単ではありません。

    0 0
    0 133

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

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

    1 3
    0 274

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

    InterSystemsでは、パフォーマンスの影響や動作不調を避けるために、データベースファイルを含む主要なコンポーネントをウイルススキャンの対象から除外していただくことを推奨しております。

    具体的には、アンチウイルスソフトのスキャン対象から、以下のファイルを除外してください。

    • データベースファイル(IRIS.DAT/CACHE.DAT)
    • <インストールディレクトリ>/bin 内の実行可能ファイル(EXE)
    • ライトイメージジャーナル(WIJ)
    • ジャーナルディレクトリ内のジャーナルファイル

    上記ファイルが、アンチウイルスソフトで除外設定されていない場合、「SERIOUS DISK WRITE ERROR...」 のようなエラーが発生する場合があります。

    0 0
    0 110

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

    サーバ側ロジックの記載に使用する ObjectScript でのエラー処理方法(TRY-CATCH)については、エラー処理方法解説ガイド
    に掲載しています。

    ぜひご参照ください!

    0 0
    0 86

    日付範囲クエリが極端に遅くなっていませんか? SQLのパフォーマンスが低下していませんか?

    日付範囲のサブクエリをまだご覧になっていない場合は、前回の投稿をご確認ください。
    https://jp.community.intersystems.com/post/日付範囲クエリのsqlパフォーマンスを改善する


    なぜ、こうも日付クエリに注目しているのでしょうか? それは、日付クエリが重要だからです。 それは報告であり、統計であり、自分の素晴らしい仕事を上司に証明するための数字です(もちろん、あなたが実際にそうしていればの話ですが )。では、前回と同じようなテーブルを見てみましょう。ただし、実際には MAXLEN と MINLEN を次のように適切に定義します。

    1 0
    0 264

    アプリケーションに、効率的に検索したいフリーテキストを含むフィールドがありますか?これまで複数の方法を試してみたものの、顧客が要求するパフォーマンスを満たせなかった経験はありませんか?私は変わった手段を使ってあらゆる問題を解決できると思っていませんか。もうご存じですよね。私ができるのは、パフォーマンス低下に対処する優れたソリューションを提供することです。

    0 0
    0 136

    皆さん、こんにちは。

    InterSystems System Alerting and Monitoring (SAM)をご存知でしょうか。InterSystems IRIS 2020.1以降に対応し、IRISやそのアプリケーションの監視を行うソリューションです。といってもシステム監視を行うPrometheus、アラートを管理するAlertManager、ダッシュボードとしてグラフ等を表示させるGrafanaなどを組み合わせたものですが、IRISの利用者に合わせて設定しやすくなっています。

    なお、これらのコンポーネントはDockerコンテナを使用しますので、Docker(19.3.098以降)ならびにDocker compose(1.25以降)をインストールいただく必要があります。

    IRISの監視APIについてはこちらをご覧ください。

    0 1
    1 211

    NoSQLデータベースという言葉を聞かれたことがあると思います。色々な定義がありますが、簡単に言えば、文字通りSQLを使わない、つまりリレーショナルデータベース(RDB)以外のデータベースのことを指すのが一般的です。

    InterSystems IRIS Data Platformでは、テーブルを定義してSQLでデータにアクセスできます。ですから、InterSystems IRIS Data Platformは厳密にNoSQLデータベースというわけではありません。しかし、InterSystems IRISの高パフォーマンスを支える「グローバル」は、40年も前からInterSystemsのコア技術として、現代で言うNoSQLデータベースを提供してきました。本稿では、InterSystems IRISの「グローバル」でグラフ構造を作り、それをPythonでアクセスする方法を紹介します。

    本稿で説明する内容は動画でも公開しています。ぜひご覧ください。

    1 0
    0 554

    ここで紹介するサンプルは、以下のGitHubから入手可能です。

    .NETサンプル

    Powershellから.NETインタフェースを呼び出すサンプル1

    callclassmethod.ps1というファイル名です。

    処理内容は、Caché (IRIS)のバージョン情報を表示するという非常に単純なものです。

    Caché では.Net Bindingを使用していましたが、IRIS用に.Net Native APIで書き換えてみます。

    以前のCaché のコードは以下の通りです。

    1 0
    0 296