記事 Mihoko Iijima · 2020年7月20日 2m read 【はじめてのInterSystems IRIS】セルフラーニングビデオ:アクセス編:(REST)手動で作成するディスパッチクラス IRIS で REST サーバを作成する際に準備する REST ディスパッチクラスを手動で作成する方法を解説します。 ※関連ビデオで、OpenAPI 2.0 で定義したアプリケーションの仕様を利用する手順を使った API ファーストで作成するディスパッチクラスの解説ビデオもあります。 https://www.youtube.com/embed/q3XVT98_05I[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。] このビデオには、以下の関連ビデオがあります。 #REST API #ビデオ #初心者 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 513
記事 Mihoko Iijima · 2021年6月4日 3m read ユーザーが作成したクラス一覧をプログラムで取得する方法 これは InterSystems FAQ サイトの記事です。 ユーザーが作成したクラス定義は、クラス定義クラスの中に格納されます。 クラス定義一覧をプログラムから取得する方法として、「クラス定義クラス」を利用することができます。 メモ:クラス定義クラスとは、%Dictionary パッケージに含まれるクラス全般のことをさします。 #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 253
記事 Mihoko Iijima · 2021年6月1日 6m read REST/JSON の簡単なサンプルご紹介 これは InterSystems FAQ サイトの記事です。 InterSystems 製品を利用した REST/JSON の操作方法を、簡単なサンプルを利用して解説します。 サンプルでは、REST クライアント、HTML、ターミナルからデータ(JSON)を送信し、サーバ(InterSystems製品)で JSON 形式のデータを返す REST ディスパッチクラスを使った簡単な流れになっています。 サンプルは、https://github.com/Intersystems-jp/FAQ-REST-SimpleSample からダウンロードいただけます。 #HTML #JavaScript #REST API #ヒントとコツ #初心者 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 7.5K
記事 Megumi Kakechi · 2021年6月1日 1m read OSのコマンドを実行する方法 これは InterSystems FAQ サイトの記事です。 OSのコマンド実行する場合、$ZF(-100) を使用します。 do $ZF(-100,"",program,args) // Windows コマンドを【同期】実行します。 do $ZF(-100,"/ASYNC",program,args) // Windows コマンドを【非同期】実行します。 mkdir, copy などのOSシェルコマンドを実行する場合は、/SHELL もあわせて指定します。 do $zf(-100,"/shell /async","mkdir","c:\temp\x") 詳細は以下のドキュメントを参照してください。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 302
記事 Megumi Kakechi · 2021年5月27日 1m read Windows上での共有メモリの割り当てについて これは InterSystems FAQ サイトの記事です。 InterSystems Data Platformは、データベースキャッシュやルーチンキャッシュなどの共有メモリを、起動時に割り当てます。 バージョン2007.1以降をWindows上で動作させる際、Windows特有の共有メモリに関する問題が生じることが判明しています。 詳細については、以下の技術資料をご参照ください。 Windows上での共有メモリの割り当てについて また、以下の記事もあわせてご覧ください。 #システム管理 #パフォーマンス #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 524
記事 Mihoko Iijima · 2021年5月23日 2m read イメージファイルを FTP サーバからアップロード/ダウンロードする方法ご紹介 これは InterSystems FAQ サイトの記事です。 %Net.FtpSession クラスを使用して FTP サーバから、アップロード/ダウンロードする方法をご紹介します。 1. FTPサーバにイメージファイルをアップロードする #FTP #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 277
記事 Toshihiko Minamoto · 2021年5月18日 12m read インデックス処理 第2部: インデックス処理 クラスにどのようなインデックスが必要であるのか、それをどのように定義するのかについて理解できたので、 次に、どのように処理するのかについて確認しましょう。 #SQL #インデックス付け #パフォーマンス #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 308
記事 Megumi Kakechi · 2021年5月13日 1m read ロックテーブルの使用状況を簡単に確認する方法 これは InterSystems FAQ サイトの記事です。 システムクラス SYS.Lock のメソッド GetLockSpaceInfo() にてロックテーブルの空きサイズ、使用サイズが取得可能です。 %SYS>w ##class(SYS.Lock).GetLockSpaceInfo()4717392,4712512,1200 戻り値は、“AvailableSpace, UsableSpace, UsedSpace” になり、それぞれByte単位の値を表しています。 AvailableSpace:ロックテーブルサイズから使用サイズ(UsedSpace)を引いたサイズ #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 239
記事 Toshihiko Minamoto · 2021年5月12日 12m read インデックスを理解する これは、SQLインデックスに関する2部構成の記事の前半です。 第1部 - インデックスを理解する #SQL #インデックス付け #パフォーマンス #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 514
記事 Toshihiko Minamoto · 2021年5月4日 2m read ObjectScriptエラー処理のスニペット ObjectScriptには、エラー(ステータスコード、例外、SQLCODEなど)を処理する方法が少なくとも3つあります。 ほとんどのシステムコードにはステータスが使用されていますが、例外は、いくつかの理由により、より簡単に処理することができます。 レガシーコードを使用している場合、さまざまな手法の変換にいくらか時間が掛かりますが、 参考として、次のスニペットをよく使用しています。 皆さんのお役にも立てればと思います。 < #Code Snippet #エラーハンドリング #ObjectScript #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 533
記事 Megumi Kakechi · 2021年4月29日 2m read ミラーリングの機能について これは InterSystems FAQ サイトの記事です。 InterSystems のミラーリングを使用することで、以下2つの目的を達成できます。 自動フェイルオーバ ディザスタリカバリや、ビジネスインテリジェンスのためのデータベースの複製 1 については、2台の InterSystems 製品を利用し、プライマリサーバの InterSystems 製品に障害が発生した場合は、もう片方の InterSystems 製品に自動フェイルオーバが行えるミラーリング構成です。 #Mirroring #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 602
記事 Toshihiko Minamoto · 2021年4月28日 5m read ユニットテスト実行中のパフォーマンスデータの収集 数年ほど前、Caché Foundationsの講座(現「Developing Using InterSystems Objects and SQL」)において、%UnitTestフレームワークの基礎を講義していたことがあります。 その時、ある受講者から、ユニットテストを実行している間に、パフォーマンス統計を収集できるかどうかを尋ねられました。 それから数週間後、この質問に答えるために、%UnitTestの例にコードを追加したのですが、 ようやく、このコミュニティでも共有することにしました。 #Code Snippet #テスト #パフォーマンス #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 146
記事 Megumi Kakechi · 2021年4月23日 2m read インターシステムズの技術の優位性について これは InterSystems FAQ サイトの記事です。 アプリケーションに求められる要件は日々複雑化しています。 しかし、複雑化するからといって開発のスピードおよび実行時のスピードが遅くなることは許されません。 複雑な要件を満たすために現在主流の手法ではソフトウェアスタック上の様々な部品(ミドルウェア、ライブラリ、フレームワークなど)を組み合わせる方法を取ります。 この方法は、様々なものを学習するための時間、それらを連携する方法、経年で様々なものが進化していくことに伴って各部品間の関係性が変化するためにそれらを維持管理していくための手間など様々な付帯的な作業が必要です。 結果として本来行いたいことに集中して取り組む前に付随する作業に忙殺されることになり開発生産性があがりません。しかも実行時にも様々な部分が連携するためのオーバーヘッドを避けることができず期待する性能を確保することも困難になります。 #インターシステムズビジネスソリューションとアーキテクチャ #ヒントとコツ #初心者 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 159
記事 Mihoko Iijima · 2021年4月22日 2m read ユーザ定義エラーを作成する方法のご紹介 これは InterSystems FAQ サイトの記事です。 ユーザ定義エラーとして使用したいエラーコードと対応するメッセージを記述したXMLを用意します。 なお、エラーコードは負の整数で設定してください。 <?xml version="1.0" encoding="UTF-8" ?> <MsgFile Language="ja"> <MsgDomain Domain="UserErrors"> <Message Id="-111" Name="MyError">エラーが発生しました</Message> <Message Id="-222" Name="MyError2">エラーが発生しました2</Message> </MsgDomain> </MsgFile> XML ファイルが作成できたら使用したいネームスペースにロードします。 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 171
記事 Mihoko Iijima · 2021年4月22日 4m read ソースプログラムを隠蔽化する方法 これは InterSystems FAQ サイトの記事です。 ルーチン(*.mac)の場合 ソースプログラムのコンパイル後に生成される *.obj のみをエクスポート/インポートすることでソースの隠蔽化を実現できます。 コマンド実行例は、EX1Sample.mac と EX2Sample.mac のコンパイルで生成される EX1Sample.obj と EX2Sample.obj をエクスポート対象に指定し、第2引数のファイルにエクスポートしています。 別ネームスペースに移動したあと、エクスポートした XML ファイルを利用してインポートを実行しています。 #CSP #デプロイ #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 276
記事 Toshihiko Minamoto · 2021年4月22日 11m read ObjectScript の信頼性の高いエラー処理機能とクリーンアップ機能 はじめに (および本記事を書いた動機) ObjectScript コードのユニット (ClassMethod など) を実行する場合、そのスコープ外にあるシステムの諸部分と対話するときに適切なクリーンアップを行えないことが原因で、様々な予期せぬ副作用が発生することがあります。 以下にその一部を紹介します。 #エラーハンドリング #ObjectScript #Caché #InterSystems IRIS 0 0 0 308
記事 Toshihiko Minamoto · 2021年4月20日 7m read 動画再生時に早送り巻き戻しができない 開発者の皆さんこんにちは。 先日、RESTのクラスを使って、PDFなどのファイルをアップロード、ダウンロードするサンプルをお送りしたお客さんからご質問を頂きました。ダウンロード機能を使ってmp4などの動画を表示させた場合、以下のようにvideoの画面下のスライダーを移動しても、再生を進めたり戻したりができませんでした 。 やはり、以下のようにスライダを動かすと、その時点の画像が表示されたほうが良いですね。 #REST API #Caché #InterSystems IRIS 4 0 0 2.3K
記事 Toshihiko Minamoto · 2021年4月19日 12m read 仮想IPアドレスを使用しないデータベースミラーリング ++更新日:2018年8月1日 Cachéデータベースミラーリングに組み込まれているInterSystems仮想IP(VIP)アドレスの使用には、特定の制限があります。 具体的に言うと、ミラーメンバーが同じネットワークサブネットに存在する場合にのみ使用できるというところです。 複数のデータセンターを使用した場合は、ネットワークの複雑さが増すため、ネットワークサブネットが物理的なデータセンターを越えて「延伸」されることはさほどありません(より詳細な説明はこちらです)。 同様の理由で、データベースがクラウドでホストされている場合、仮想IPは使用できないことがよくあります。 ロードバランサー(物理的または仮想)などのネットワークトラフィック管理のアプライアンスを使用して、クライアントアプリケーションやデバイスに単一のアドレスを提示することで、同レベルの透過性を実現できます。 ネットワークトラフィックマネージャは、クライアントを現在のミラープライマリの実際のIPアドレスに自動的にリダイレクトします。 この自動化は、災害後のHAフェイルオーバーとDRプロモーションの両方のニーズを満たすことを目的としています。 #Mirroring #インターシステムズビジネスソリューションとアーキテクチャ #クラウド #システム管理 #フェイルオーバー #高可用性 #Caché 0 0 0 477
記事 Toshihiko Minamoto · 2021年4月19日 8m read 配列プロパティ要素のための SQL インデックス クラスの中で配列プロパティを使い、その要素 (キーと値の両方) によってスピーディに検索を実行できると非常に便利な場合があります (EAV モデルの場合は特に重宝します)。 それでは、簡単な例を見てみましょう。 #ObjectScript #SQL #インデックス付け #パフォーマンス #Caché 1 0 0 370
記事 Megumi Kakechi · 2021年4月16日 4m read エラー解消後もジャーナル切り替えタスクの状態が Suspend Leave になっている場合の対処方法 これは InterSystems FAQ サイトの記事です。 ジャーナル切り替えのタスクが実行時にエラー(例:FILEFULL)となり、その原因となるエラーを解消後も一時停止(Suspend Leave)状態となっているのであれば、以下の操作により復旧可能です。 管理ポータル: [システムオペレーション] > [タスクマネージャ] > [タスクスケジュール表示] より、以下の操作を行います。 ジャーナル切り替え(Switch Journal) "詳細" をクリック "一時停止" をクリック タスク実行が一時停止された場合にタスクを再スケジュールしますか? はい "すぐに実行する" をクリック "再開" をクリック "すぐに実行する" タスク詳細にて "一時停止:"が空欄になり、"次回スケジュール時刻:" が再開後の次のスケジュール(例えば2021-04-17 00:00) になっていれば、復旧完了です。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 280
記事 Mihoko Iijima · 2021年4月15日 2m read アプリケーションでロックタイムアウトエラーが発生する理由 これは InterSystems FAQ サイトの記事です。 このエラーが発生する原因としては、アプリケーションの中で既に他のプロセスからロック対象リソースがロックされていて、何らかの理由でそのロックが解放されていないケースが考えられます。 他のプロセスがロックしている兆候がない場合は、ロックテーブルの空き領域が不足しているケースが想定されます。その場合は、メッセージログ(コンソールログ)に LOCK TABLE FULL のメッセージが出力されます。 トランザクション処理を行なっている場合には、ロック解放の延期が影響しているケースも考えられます。トランザクションとロック解放の延期については、以下のドキュメントをご参照下さい。 #SQL #システム管理 #データベース #データベースのトランザクション処理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 772
記事 Mihoko Iijima · 2021年4月15日 2m read プログラムから、クラス定義に記述されたプロパティ定義を取得する方法 これは InterSystems FAQ サイトの記事です。 クラスに定義されたプロパティの情報については、以下システムクラスを利用して情報を取得できます。 %Dictionary.ClassDefinetion #ObjectScript #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 332
記事 Toshihiko Minamoto · 2021年4月15日 3m read odt ドキュメントと docx ドキュメントをテンプレートから作成するためのツール 皆さん、こんにちは! 皆さんに私のプロジェクトをご紹介したいと思います。 #Caché Open Exchange app 0 0 0 140
記事 Tomoko Furuzono · 2021年4月13日 2m read クラウド環境でのInterSystems製品の動作保証・ライセンスについて これは、InterSystems FAQサイトの記事です。 以下ドキュメントは、IRIS 最新バージョンと Caché/Ensemble2018.1 でサポートしているクラウドプラットフォームの一覧です。 ※Amazon EC2 は、2010.2.0以降でサポートしています。 Microsoft Azureは、2014.1.0以降でサポートしています。 Google クラウドプラットフォームは、IRIS2018.1以降でサポートしています。 IRIS 最新バージョンサポートクラウドプラットフォーム #クラウド #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 269
記事 Tomoko Furuzono · 2021年4月13日 1m read SQLクエリーの監査ログを取得する方法 これは、InterSystems FAQサイトの記事です。 SQLクエリーの文字列を監査ログに残すことができます。 詳細は、以下のドキュメントをご参照下さい。 システム監査イベントについて ※%SQLで始まるイベントをご覧ください。 InterSystems SQL の使用法 ※監査関連ページをご覧ください。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 214
記事 Toshihiko Minamoto · 2021年4月12日 24m read アトミックでない属性のインデックス作成 (1NF/2NF/3NF)露 からの引用 行と列で特定される位置には、それぞれアプリケーションドメインの値が 1 つだけあります (それ以外は何もない)。 その目的によって、同じ値がアトミックであったり、なかったりします。 例えば、「4286」という値は、 「クレジットカードの PIN コード」を意味するのであれば、アトミックとなります (破損している場合や並び替えられている場合は、使用できません)。 単に「連続する番号」であれば、非アトミックとなります (いくつかに分割されていたり、並び替えられていても、値は意味を成します)。 この記事では、文字列や日付、($LB 形式の) 単純なリスト、「list of <...>」、「array of <...>」といったフィールドの型を伴う SQL クエリのパフォーマンスを向上させる標準的な方法にして検証します。 #ObjectScript #SQL #インデックス付け #オブジェクトデータモデル #パフォーマンス #Caché 0 1 0 145
記事 Mihoko Iijima · 2021年4月9日 1m read 指定のテーブルの全フィールドをSQLで取得する方法 これは InterSystems FAQ サイトの記事です。 INFORMATION_SCHEMA スキーマを使用して取得できます。 INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルのSQLメニューに表示されません。表示させる方法は以下の通りです。 管理ポータル→システムエクスプローラ→SQL メニューを開きます。 スキーマのプルダウン左にある「システム」をチェックします。 スキーマのプルダウンから INFORMATION_SCHEMA を選択します。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 544
記事 Megumi Kakechi · 2021年4月9日 2m read 使用中のデータベースキャッシュ(グローバルバッファ)のサイズを知る方法 これは InterSystems FAQ サイトの記事です。 グローバル変数毎のデータベースキャッシュ使用量を確認するツール(^GLOBUFFユーティリティ)が用意されています。 %SYSネームスペースにて、ユーティリティを直接実行する方法と、プログラムで実行する方法があります。 ユーティリティを直接実行する方法は以下のようになります。 #ObjectScript #ツール #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 392
記事 Mihoko Iijima · 2021年4月9日 1m read 関数・メソッドの引数に可変長引数を渡すことができるかどうか これは InterSystems FAQ サイトの記事です。 引数名の後ろに ... をつけることで可変の引数を渡すことができます。 ObjectScript では、配列を使って任意の数の引数を渡すことができます。 例文は以下の通りです。例文では、メソッド実行後に確認しやすいように、グローバル変数(=データベースに格納される変数)に引数の情報を設定しています。 Class TEST.ARGTEST1 Extends %RegisteredObject { ClassMethod NewMethod1(Arg... As %String) As %Boolean { kill ^a merge ^a = Arg } } ターミナルで実行した結果は以下の通りです。 #ObjectScript #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 330
記事 Megumi Kakechi · 2021年4月7日 4m read ファイル入出力処理をスクリプトで記述する方法 これは InterSystems FAQ サイトの記事です。ファイル入出力処理を行うには、ライブラリクラスを利用する方法が便利です。 ライブラリクラスを使用する以外には、Open/Use/Close コマンドを使用する方法もあります。<※1> ファイル入出力処理には、%Library.Fileクラス、%Stream.FileCharacter/%Stream.FileBinary を使用します。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 1.3K