これはInterSystems FAQ サイトの記事です。
$ZHorologを使用します。
$ZHorologシステム変数はInterSystems製品を起動してからの経過時間(秒)を保持しています。
2点間の$ZHorolog値の差を取るだけで正確な経過時間を取得する事が出来ます。
詳しくは以下、ドキュメントをご参照ください。
この他、秒の小数部を含む時間の日付と時間の取得には $NOW, $ZTimeStamp が使用できます。
詳しくは以下、ドキュメントをご参照ください。
これはInterSystems FAQ サイトの記事です。
$ZHorologを使用します。
$ZHorologシステム変数はInterSystems製品を起動してからの経過時間(秒)を保持しています。
2点間の$ZHorolog値の差を取るだけで正確な経過時間を取得する事が出来ます。
詳しくは以下、ドキュメントをご参照ください。
この他、秒の小数部を含む時間の日付と時間の取得には $NOW, $ZTimeStamp が使用できます。
詳しくは以下、ドキュメントをご参照ください。
これはInterSystems FAQ サイトの記事です。
この記事では「グローバルを誤って削除してしまった!
」という場合の対処方法をご紹介します。
誤って削除してしまった特定のグローバルを復旧するためには、バックアップファイルとジャーナルを使用します。
復旧は、^ZJRNFILTユーティリティによるジャーナルリストアで条件を指定してジャーナルレコードをリストアする方法で行います。
この方法で、ある時点のデータベースのバックアップに対して、削除が含まれるジャーナルレコードについて特定グローバルを削除するまでのものを適用することができます。
^ZJRNFILTユーティリティの詳細については、以下のドキュメントをご参照ください。
^ZJRNFILT を使用したジャーナル・レコードのフィルタ処理について【IRIS】
^ZJRNFILT を使用したジャーナル・レコードのフィルタ処理について
【実施例】
・2020/10/14 時点のバックアップが存在している(バックアップは2020/10/15 0:30に実行したとします)
ジャーナル:2020/10/15 の1日分が存在している(2020/10/14のバックアップ以降のもの)
・対象のグローバル:^TEST1
イメージは以下の通りです。
こんにちは!
この記事では、IRIS から Caché、Ensemble、HealthShare など、InterSystems の製品で使用されるクラスやその構造を理解するのに役立つツールの概要を簡単にまとめています。
つまり、そのツールはクラスやパッケージ全体を視覚化し、クラス間の相対関係を示し、ディベロッパーやチームリーダーに必要な情報をすべて提供してくれるので、わざわざ Studio に移動してコードを調べる必要が省けます。
InterSystems の製品について情報を集めている方からたくさんのプロジェクトをレビューしている方、または単純に InterSystems Technology ソリューションの新機能に興味がある方まで、ObjectScript Class Explorer の概要をぜひお読みください!
開発者のみなさん、こんにちは!
インターシステムズは、10/20-11/5 にかけて、年次カンファレンス InterSystems Virtual Summit 2020 をオンラインで開催いたします。
⚡️ 現在、事前登録受付中です! ⚡️
Virtual Summit では、IT技術に詳しい経営層、技術マネージャ、開発者、システムインテグレータの方など、全ての方にとって価値のある内容をお届けします。 今年はすべてのセッションに無料でご参加いただけます!
時間は日本のタイムゾーンに合わせて開催いたします。
今年のサミットのテーマは インタラクション & インフォメーション(相互作用と情報)です。サミットでは、以下のようなセッションが開催されます。
✅ 基調講演
適応力の高い組織の創造
10/20 - 10/22
✅ 60以上のフォーカスセッション
ベストプラクティス、新機能、ロードマップ
10/27 - 10/29
✅ ASK THE EXPERTS
専門家と個別にご相談いただけます。
10/30, 11/2
✅ EXPERIENCE LABS
最新技術をハンズオンでご体験いただけます。
11/2 - 11/5
詳細は、こちらをご覧ください。 intersystems.com/summit20
ぜひ、Virtual Summit 2020にご参加ください!
これはInterSystems FAQ サイトの記事です。
InterSystems IRIS Native API for Java のメソッドに、IRIS クラスメソッドを呼び出す classMethod***() があります。
ObjectScript メソッドおよび関数の呼び出し
こちらを使用することで、InterSystems IRIS Native API for Java から InterSystems IRIS のクラスメソッドを呼び出すことが可能です。
以下、使用方法について簡単なサンプルをご紹介します。
*SampleNativeAPI .java
開発者の皆さんこんにちは!
第6回 InterSystems IRIS プログラミングコンテスト(Full Stackコンテスト) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。
今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します!
🏆 審査員賞 -特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。
🥇 1位 - $1,500 は npm-iris を開発された Henrique Gonçalves Dias さんに贈られました!
🥈 2位 - $1,000 は apptools-admin を開発された Sergey Mikhailenk さんに贈られました!
🥉 3位 - $500は realworld-intersystems-iris を開発された Dmitriy Maslenniko さんに贈られました!
🏆 開発者コミュニティ賞 - 最も多くの票を獲得したアプリケーションに贈られます。
🥇 1位 - $1,000 は を開発された Henrique Gonçalves Dias さんに贈られました!
🥈 2位 - $250 は apptools-admin を開発された さんに贈られました!
🥈 2位 - $250 は を開発された
InterSystems は、InterSystemsIRIS を新しいリリース方法を採用しようとしています(訳注:2020年現在、このリリース方法が採用されています)。このブログでは、新しいリリースモデルとお客様が予測しておくべきことを説明しています。 この内容は InterSystems IRIS ロードマップセッションの最後に行われた Global Summit で説明し、お客様から多くの肯定的なフィードバックを受け取ったものです。
この新しいモデルでは、次の 2 つのリリースストリームを提供しています。
1)EM と呼ばれる従来と同じ毎年恒例のリリース(拡張メンテナンス)
2)CD(継続的デリバリーを意味する)のタグが付けられ、コンテナ形式でのみ入手可能になる四半期ごとのリリース。
N.P.Mは "No Project Mess "の略です。
N.P.M.は、InterSystems IRISとBootstrap 4を使用したプロジェクト&タスク管理アプリです。
No Project Messは、シンプルで直感的なプロジェクトとタスクの管理ソフトウェアで、開発者や中小企業が日々の複雑な問題を軽減できるように作成されています。
スプレッドシート、カンバン、カレンダー、ガントチャートなど、タスクのためのさまざまなビューを提供しています。
InterSystems IRIS データ・プラットフォーム および InterSystems IRIS for Health バージョン 2020.3 CD をリリースしました。
こちらはCD(continuous delivery)リリースになりますので、OCI(Open Container Initiative)と呼ばれるDockerコンテナー形式でのみ使用可能です。
リリースのビルド番号は 2020.3.0.221.0 です。
InterSystems IRIS Data Platform 2020.3 により、サイロ化したデータとアプリケーションをつなぐ、リアルタイム機械学習に対応したアプリケーションの迅速な開発と展開を可能にします。このバージョンでは、以下の多くの新機能が含まれます。
Ansible は Caché とアプリケーションコンポーネントをいかに迅速にデータプラットフォームのベンチマークにデプロイするかという課題を解決するのに役立ちました。 同じツールと方法をテストラボ、トレーニングシステム、開発環境、またはその他の環境の立ち上げも使うことができます。 顧客サイトにアプリケーションをデプロイする場合、デプロイの大部分を自動化し、アプリケーションのベストプラクティス標準に合わせてシステム、Caché、アプリケーションを確実に構成することができます。
CachéとCosFakerを使ったテスト駆動開発の簡単な紹介
読了****目安時間: 6分
皆さん、こんにちは。
私がTDDに初めて出会ったのは約9年前のことです。すぐに夢中になってしまいました。
最近は非常に人気が出てきているようですが、残念ながら多くの企業ではあまり使われていないようです。 また、主に初心者の方ではありますが、一体それがなんであるのか、どのように使うのかといったことさえも知らない開発者もたくさんいます。
この記事は、%UnitTestでTDDを使用する方法を紹介することを目標としています。 ワークフローを示し、私の最初のプロジェクトであったcosFakerの使用方法を説明します。これはCachéを使って作成したものであり、最近になってOpenExchangeにアップロードしたものです。
では、ベルトを締めて出発しましょう。
テスト駆動開発(TDD)は、自動テストが失敗した場合に、開発者に新しいコードの書き方のみを示すプログラミング実践として定義できます。
このメリットに関する記事、講義、講演などは数多く存在しますが、どれもが正しい内容です。
コードはテスト済みで生成されること、過度なエンジニアリングを避けるために定義された要件に、システムが実際に適合していることを確認できること、継続的にフィードバックを得ることが挙げられます。
ここで紹介するサンプルは、以下のGitHubから入手可能です。
上記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を使用していると言うこともできます。
Caché での実装は、以下の通りです。
InterSystems IRIS のクラスクエリ
InterSystems IRIS(および Cache、Ensemble、HealthShare)のクラスクエリは、SQL クエリを のコードから分離する便利なツールです。 このクエリの基本的な機能は、同じ SQL クエリを複数の場所で異なる引数で使用する場合にクエリの本文をクラスクエリとして宣言し、このクエリを名前で呼び出すことでコードの重複を回避できるというものです。 このアプローチは、次のレコードを取得するタスクを開発者が定義するカスタムクエリにも便利です。 興味が湧きましたか? それではこのまま読み進めてください!
これはInterSystems FAQ サイトの記事です。
DBLatency の Warning メッセージは、ヘルス・モニタプロセスが定期的にデータベースからのランダム読み取りが完了するまでに要した時間(ミリ秒)を計測していて、設定されている閾値(1000 msec)を超えた場合に出力されます。
上記例では、C:\xxx\IRIS.DAT(または C:\xxx\CACHE.DAT)へのディスク読み取り I/O に 1510 msec かかったことを示していて、メッセージ出力時のディスク I/O 応答速度が遅いことが考えられます。
ディスク I/O 応答速度が遅い原因としては、ディスク I/O 負荷が高いことが考えられます。
開発者の皆さんこんにちは!IRIS プログラミングコンテストも 6 回目を迎えました!
今回のコンテストのテーマは
「InterSystems IRIS をバックエンドとし Web またはモバイル・ソリューションをフロントエンドとして使用する⚡️フル・スタック・アプリケーション⚡️」
です。日本からのご応募お待ちしております!
Open Exchange(アプリケーション登録/参考となる開発テンプレート)のページはこちら➡ ⚡️ InterSystems Full Stack Contest ⚡️
(投票期間は 2020年10月5日~11日、勝者発表は 10月12日を予定しています)
優勝特典
1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。
🥇 1位 - $2,000
🥈 2位 - $1,000
🥉 3位 - $500
2、Developer Community で多く票を集めたソリューションには、以下の賞金が贈られます。
🥇 1位 - $1,000
🥈 2位 - $500
複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。
参加資格
どなたでもご参加いただけます!
InterSystems ハッカソンの時、Artem Viznyuk と私のチームは Arduino ボード(1 台)とその各種パーツ(大量)を所有していました。 そのため、私たちは活動方針を決めました。どの Arduino 初心者もそうであるように、気象観測所を作ることにしたのです。 ただし、Caché のデータ永続ストレージと DeepSee による視覚化を利用しました!
これはInterSystems FAQ サイトの記事です。
%Library.Routine (以降、%Routine)クラスのRoutineListクエリを使用して、プログラムからルーチンの日付やサイズを取得できます。
RoutineListクエリには、引数があり、検索対象となるルーチン名を前方一致や中間一致で指定できます。
(ワイルドカードには、* か ? を指定します。)
以下の例では、*.MAC を引数に指定して、検索をしています。
ルーチン一覧の他に、クラス定義一覧も取得できます。
これはInterSystems FAQ サイトの記事です。
言語バインディングなどのサーバクライアント型で接続した場合、クライアントのマシン名は以下の処理で取得できます。
クライアントのIPアドレスは以下の処理で取得できます。
* サーバーとクライアントが同一マシンの場合、上記で取得できるIPアドレスは、127.0.0.1になります。
これはInterSystems FAQ サイトの記事です。
コンソールログ(message.log/cconsole.log)に、以下のようなログが出力される場合があります。
このメッセージは、コントロールプロセスが出力しています。
このプロセスは、ライトデーモン(WriteDaemon)等の主要なシステムプロセスを監視しています。
この監視にて、ディスクI/O 負荷が上がったことなどにより、ライトデーモンの書き込み処理が一定期間(xxx秒間)進んでいない場合、データベースキャッシュ上にダーティなバッファが増えるのを抑制する為に、ユーザプロセスのデータベースへの書き込みアクセスをサスペンドします。
このメッセージ出力後、ライトデーモンの活動が復帰するまでユーザプロセスの書き込みアクセスは待ち状態になります(ハング状態になります)。
Amazon Web Services(AWS)クラウドは、コンピューティングリソース、ストレージオプション、ネットワークなどのインフラストラクチャサービスの幅広いセットをユーティリティとしてオンデマンドかつ秒単位の従量課金制で提供しています。 新しいサービスは、先行投資なしで迅速にプロビジョニングできます。 これにより、大企業、新興企業、中小企業、公営企業の顧客は、変化するビジネス要件に迅速に対応するために必要なビルディングブロックにアクセスすることができます。
更新: 2019年10月15日
Caché 2017以降のSQLエンジンには新しい統計一式が含まれています。 これらの統計は、クエリの実行回数とその実行所要時間を記録します。
これは、多くのSQLステートメントを含むアプリケーションのパフォーマンスを監視する人や最適化を試みる人にとっては宝物のような機能ですが、一部の人々が望むほどデータにアクセスするのは簡単ではありません。
この記事と関連するサンプルコードでは、このような情報の使用方法と、日次統計の概要を定期的に抽出してアプリケーションのSQLパフォーマンス履歴記録を保持する方法について説明します。
※詳細については、下記ドキュメントページもご参考になさってください。
https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GSQLOPT_sqlstmts
記録内容
SQLステートメントが実行されるたびに、所要時間が記録されます。 この処理は非常に軽量であり、オフにすることはできません。 コストを最小限に抑えるため、統計はメモリに保持されてから定期的にディスクに書き込まれます。 このデータには当日にクエリが実行された回数と、その平均所要時間と合計所要時間が含まれます。
データはすぐにはディスクに書き込まれません。
Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。
以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。 *実行は、%SYSネームスペースで行って下さい。*
Set"/CacheDB/AAA/"
リモートデータベースからネームスペースを作成する場合は、以下のデータベース定義で、第三パラメータにリモートのサーバ名を指定します。
※クラスの詳細については、それぞれのクラスリファレンスをご参照下さい。
また、データベースの作成・登録については、^DATABASEルーチンを使用することも可能です。
このルーチンを実行すると、下記のようにオプションが表示されますので、目的によって選択します。
以下は、データベース作成の実行例です。
*実行は、%SYSネームスペースで行って下さい。*
^DATABASE
※^DATABASEルーチンの各オプションについては、以下ドキュメントページをご参照ください。
^DATABASEについて【IRIS】
これはInterSystems FAQ サイトの記事です。
InterSystemsでは、パフォーマンスの影響や動作不調を避けるために、データベースファイルを含む主要なコンポーネントをウイルススキャンの対象から除外していただくことを推奨しております。
具体的には、アンチウイルスソフトのスキャン対象から、以下のファイルを除外してください。
上記ファイルが、アンチウイルスソフトで除外設定されていない場合、「SERIOUS DISK WRITE ERROR...」 のようなエラーが発生する場合があります。
このエラーは、実際にハード的なディスク障害が原因であることもありますが、それ以外にアンチウィルスソフトのウィルスチェックなどによって、ディスクへの書き込みが阻止された場合にも起こります。
詳細は、下記ドキュメントページをご参照ください。
インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法【IRIS】
インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法
これはInterSystems FAQ サイトの記事です。
サーバ側ロジックの記載に使用する ObjectScript でのエラーが発生した場合の対処方法については「ObjectScriptでエラーが発生したら」にまとめています。
ぜひご参照ください!
Cachéデータベースのオブジェクトおよびリレーショナルデータモデルは、標準、ビットマップ 、ビットスライスの3種類のインデックスをサポートします。 これら3つのネイティブタイプに加えて、開発者は独自のカスタムタイプのインデックスを宣言し、バージョン2013.1以降の任意のクラスで使用できます。 たとえば、iFindテキストインデックスは、そのメカニズムを使用しています。
カスタムインデックスタイプは、挿入、更新、削除を実行するための%Library.FunctionalIndexインターフェースのメソッドを実装するクラスです。 新しいインデックスを宣言するときに、そのようなクラスをインデックスタイプとして指定できます。
例:
CustomPackage.CustomIndex クラスは、カスタムインデックスを実装するまさにそのクラスです。
たとえば、ハッカソン中に私たちのチーム(Andrey Rechitsky 、 Aleksander Pogrebnikov、そして)が開発した空間データのクワッドツリーベースのインデックスの小さなプロトタイプを分析してみましょう。
開発者の皆さん、こんにちは!
Full Stack コンテストについての続報をお伝えします!
投票期間に追加ポイントを獲得できる「テクノロジーボーナス」について紹介します。
対象となる技術は、以下の通りです。
詳細は以下の通りです。
フルスタック・アプリケーションから、REST API 経由で InterSystems IRIS にアクセスるとボーナスポイントを獲得できます。REST API をご自身で開発されるか、組み込みのものを利用したり、ZPM 経由でインストールするなど、選択できます。
RESTサービス作成方法については、ドキュメントや IRIS で作成する REST サーバの仕組み をご参照ください。
InterSystems Native API(.NET、Java、Python、Node.
開発者の皆さん、こんにちは。
今回の記事では前回の記事に引き続き、IRIS for Health上で、FHIRリポジトリ+OAuth2認可サーバ/リソースサーバを構成する方法をご案内します。
(注意:2020.4以降のバージョンではこの記事に記載されているスコープ指定では正しくリソースが取得できません。詳細はこちらの記事をご覧ください。)
パート1では、事前準備と、OAuth2認可サーバを構成し、アクセストークンを取得するとこまでをご紹介しました。
このパート2では、FHIRリポジトリの構築方法と、OAuth2クライアント/リソースサーバの構成方法をご紹介していきます。
今日構成する、FHIRリポジトリおよび、OAuth2クライアント/リソースサーバの構成は、前回パート1で構成したOAuth2認可サーバのIRISインスタンスと分けることもできますし、同じインスタンスに同居させることもできます。
この記事の中では前回と同じインスタンス上に構成していきます。
FHIRリポジトリの構築方法は、過去の記事「Azure上でIRIS for Healthをデプロイし、FHIR リポジトリを構築する方法」で紹介しています。
この記事は、Caché 以前の歴史に関するかなり個人的な見方を書いたものです。
過去の記事で紹介された Mike Kadow 氏の素晴らしい著書に対抗するつもりはありません。
私たちの歴史的背景は異なるため、この記事は過去に対する別の視点を生み出すことを意図しています。
全体的な話は、1966 年に MGH(マサチューセッツ総合病院)で 8K のメモリ(18 ビットワード)[現在 = 18K バイト] を搭載した PDP-7(シリアル番号#103)
が予備のシステムとして使用されたことから始まります。
「シリアル番号 103 は、
現在 [2014] は MGH のコックスがんセンターの敷地になっている取り壊されたセイヤービルの地下にありました。」
「Octo Barnett の指導の下、Neil Papparlardo と Curt Marble が
このマシンで最初のソフトウェアを開発し、リリースしました。」
彼らはこのソフトウェアを MUMPS と名付けました。 ()
PDP-7
言語自体は古い形式の Basic にかなり近いものでした。
しかし、他のプログラミング言語に比べて大幅に改善されている点がありました。
日付範囲クエリが極端に遅くなっていませんか? SQLのパフォーマンスが低下していませんか?
日付範囲のサブクエリをまだご覧になっていない場合は、前回の投稿をご確認ください。
https://jp.community.intersystems.com/post/日付範囲クエリのsqlパフォーマンスを改善する
なぜ、こうも日付クエリに注目しているのでしょうか? それは、日付クエリが重要だからです。 それは報告であり、統計であり、自分の素晴らしい仕事を上司に証明するための数字です(もちろん、あなたが実際にそうしていればの話ですが )。では、前回と同じようなテーブルを見てみましょう。ただし、実際には MAXLEN と MINLEN を次のように適切に定義します。
では、先月のすべてのデータを取得したい場合を見てみましょう。 次のようなクエリを書き、「良い仕事」を考えます。