記事 Mihoko Iijima · 2023年6月6日 5m read ルーチン/クラスの一括コンパイルの結果からエラー情報を取得する方法 これは InterSystems FAQ サイトの記事です。 ターミナルでルーチンやクラスのコンパイルを行う際、コンパイル結果が画面に表示されるのでエラーが発生した場合でも確認しやすいですが、一括コンパイルの場合は、大量のコンパイル結果の中にエラー情報が含まれてしまうためエラー情報だけを取得したい場合には少し工夫が必要です。 以下、ルーチン/クラスの一括コンパイル時の結果からエラー情報を取得する方法をご紹介します。 #ObjectScript #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 134
記事 Hiroshi Sato · 2024年3月18日 1m read $ZF(-100) で呼び出した外部プロセスがハングしてしまった場合のIRISプロセスの終了方法 これは InterSystems FAQ サイトの記事です。 $ZF(-100)で外部コマンドを実行する場合、その外部コマンドの子プロセスからの応答が返らない限り、$ZF(100)コマンドを発行したIRISプロセスはその応答を待って残り続けます。 従ってIRISプロセスを終了させるためにはその応答がない子プロセスを強制終了させる必要があります。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 20
記事 Mihoko Iijima · 2020年9月16日 2m read アンチウイルスソフト(セキュリティソフト)のスキャンから除外してほしいリスト これはInterSystems FAQ サイトの記事です。 InterSystemsでは、パフォーマンスの影響や動作不調を避けるために、データベースファイルを含む主要なコンポーネントをウイルススキャンの対象から除外していただくことを推奨しております。 具体的には、アンチウイルスソフトのスキャン対象から、以下のファイルを除外してください。 データベースファイル(IRIS.DAT/CACHE.DAT) <インストールディレクトリ>/bin 内の実行可能ファイル(EXE) ライトイメージジャーナル(WIJ) ジャーナルディレクトリ内のジャーナルファイル 上記ファイルが、アンチウイルスソフトで除外設定されていない場合、「SERIOUS DISK WRITE ERROR...」 のようなエラーが発生する場合があります。 #システム管理 #セキュリティ #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 229
記事 Hiroshi Sato · 2020年10月29日 1m read 起動時に、 CTELNETD startup error: bind(sock) failed エラーが出てスタートアップに失敗する場合の対処法 これはInterSystems FAQ サイトの記事です。 起動時に、 CTELNETD startup error: bind(sock) failed Telnet23ポートは別ソフトでは使用していません。というエラーが発生する場合の対処法です。 現在、InterSystems製品と以下のソフトの組み合わせで、この現象が発生することがわかっています。 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 434
記事 Megumi Kakechi · 2020年11月24日 2m read サーバー仮想化ソフトウェア上でInterSystems製品を稼働する場合、物理サーバー上での稼働とライセンス上の条件等での違いについて これはInterSystems FAQ サイトの記事です。InterSystemsの製品には同時ユーザー数でライセンスの容量を決定する製品とサーバーのCPUコア数で容量を決定する製品の2種類があります。 同時ユーザー数ライセンスタイプの場合、CPUコア数により使用可能なライセンスのグレードに制限があります。 物理サーバーの場合には、そのサーバーが保持しているCPUコア数の総数をカウントします。 そして、その総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。 サーバー仮想化ソフトウェア(VMWare、Hyper-Vなど)を利用する場合には、その仮想サーバーに割り当てられたCPUコア数をカウントします。 同様にその総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。 CPUコア数ライセンスタイプの場合、コア数によりライセンスの容量が決まります。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 231
記事 Hiroshi Sato · 2021年1月27日 1m read JDBC対応状況 これは InterSystems FAQ サイトの記事です。 バージョン2009.1以降で、JDBC 4.0API に対応しています。 詳細は、以下のドキュメントをご参照ください。 JDBCサポートについて #Java #JDBC #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 119
記事 Mihoko Iijima · 2021年3月19日 3m read 複数のSQL 文を実行する方法 これは InterSystems FAQ サイトの記事です。 複数の SQL 文を実行する GUI はありませんが、複数の SQL 文を含むファイルを作成しファイルをインポートしながら SQL を実行する方法で対応できます。 ご利用バージョンによって使用するユーティリティメソッドが異なります。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 7.7K
記事 Hiroshi Sato · 2021年10月7日 1m read ジャーナルレコード中の「時間」の値について これは InterSystems FAQ サイトの記事です。ジャーナルレコードの「時間」には、ジャーナルバッファを初期化したときの時間が登録されています。 ジャーナルレコードの時間は、ジャーナルバッファ毎に記録されているため、同じジャーナルバッファ内のジャーナルレコードはすべて同じ時間になります。 なお、ジャーナルバッファは、64KBのサイズで255個存在していて、1つのジャーナルバッファが満杯になった場合、次のジャーナルバッファへレコードを追加するように順番に使用されます。 ジャーナルレコードの時間は、次のバッファへレコードを追加する前に行われる初期化の時間が記録される仕組みになっています。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 102
記事 Hiroshi Sato · 2021年9月26日 3m read リストコレクションを定義したプロパティに対するSQLアクセス方法 これは InterSystems FAQ サイトの記事です。リストコレクション(Property XXX As list of %String;)で定義したプロパティは、SQL関数: $LISTBUILD() 、$LISTFROMSTRING() を使用して操作できます。 各SQL関数については、下記ドキュメントページをご参照ください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 141
記事 Mihoko Iijima · 2021年6月9日 8m read 管理ポータルのメモリ関連設定項目について これは InterSystems FAQ サイトの記事です。 管理ポータルで設定できるメモリ関連の項目は、以下の通りです。(項目としては他にもありますが、ここでは、ほとんど設定する必要のないものについては記載していません。) 管理ポータル [ホーム] > [システム管理] > [構成] > [システム構成] > [メモリと開始設定] 古いバージョンのメニューは以下の通りです。 【バージョン5.1~2010.x】システム管理ポータル [ホーム] > [構成] > [メモリと開始設定] の設定内容* データベースキャッシュ用メモリ* ルーチンキャッシュ用メモリ 【バージョン2011.1.0~】管理ポータル [ホーム] > [システム管理] > [構成] > [追加の設定] > [メモリ詳細設定] #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 292
記事 Megumi Kakechi · 2021年7月12日 1m read CSV形式のファイルからクラスインスタンスにデータをロードする方法 これは InterSystems FAQ サイトの記事です。 %SQL.Util.Procedures クラスの CSVTOCLASS() メソッドを使ってCSVファイルからデータをロードすることができます。 サンプルコードに合わせて使用方法を解説します。 以下のコードでは、c:\temp\test.csv の内容を変数 rowtype で指定した列の形式で csv.test というクラスにデータをインポートしています。 クラス csv.test が存在しなければ、実行時にそのクラスも自動的に生成されます。 クラスが存在する場合は、定義済プロパティに合わせて変数 rowtype に列の形式を指定する必要があります。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 387
記事 Mihoko Iijima · 2021年9月16日 1m read InterSystems 製品のクライアント機能(VSCode/スタジオ、xDBC等)を使用するためにライセンスは必要ですか? これは InterSystems FAQ サイトの記事です。 答え:必要ありません。 InterSystems 製品では、クライアント機能用に特別なライセンスを設けておりません。 通常のサーバーライセンス(サブスクリプションを含む)を保有していれば、そのサーバーライセンスで許容しているキャパシティに応じて、複数のクライアントシステムにクライアント機能をインストールして利用することができます。 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 107
記事 Tomoko Furuzono · 2021年10月19日 1m read アップグレード後、管理ポータルを開こうとするとERROR #5001となり、開くことができません。 これは、InterSystems FAQサイトの記事です。システムをアップグレードした後、管理ポータルを開こうとすると、下記のエラーが表示される場合があります。 ERROR #5001: Server version of object does not match version sent from the client: %ZEN.Component.vgroup このエラーは、ブラウザのキャシュに古い情報が残っているために発生しています。 ブラウザのキャッシュをクリアすることでエラーを解消することができます。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 171
記事 Toshihiko Minamoto · 2022年4月12日 3m read ビジュアルトレースと選択の自由 コミュニティの皆さん、こんにちは。お元気ですか? 皆さんは、創造性をどのようにして発揮していますか? 新しいアイデアはどのようにしてテストしていますか? 数年にもわたって、私はずっと新しいものを作り出し、既存のものを改良し、実験、テスト、破壊(いつも壊れてしまいます)を経て作り直し、そしてこのプロセスを繰り返してきました。 InterSystems が推進するコンテストは、モチベーションを大きく持ち上げてくれます。もちろん、賞品に目が行ってしまうことは否定できませんが。 しかし、賞品や報酬だけでなく、こういったコンテストでは自分の創造性が試されますし、作成、改良、テスト、実験の機会が得られます。 さらに、最も素晴らしいのは、何をやるのも自由であるということです! #メッセージ検索 #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 122
記事 Megumi Kakechi · 2022年8月18日 1m read クライアントからターミナルにログインできない場合のチェック項目について これは InterSystems FAQ サイトの記事です。 クライアントからターミナルにログイン(接続)できない時、ターミナル接続を可能にするサービスが有効になっていないことが原因として考えられます。 ターミナル接続を可能にするサービスが有効になっていないことが原因として考えられます。 管理ポータル :[ホーム] > [システム管理] > [サービス] 有効になっていない場合は、リンクをクリックしてサービス定義編集画面を開き、"サービス有効"にチェックを入れて保存します。 もう一つの原因としてはOSのファイアウォールによりターミナル接続が遮断されている場合が考えられます。 リモートでターミナル接続される場合はファイアウォールの設定を無効にしてお使い下さい。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 265
記事 Megumi Kakechi · 2022年10月3日 1m read InterSystems IRIS は 2フェーズコミットをサポートしていますか? これは InterSystems FAQ サイトの記事です。 Question: InterSystems IRIS は 2フェーズコミットをサポートしていますか? Answer: サポートしていません。 2フェーズコミットはデータベースシステムがサポートしているだけでは十分ではなく、アプリケーションサーバ等の各実装が定めている2フェーズコミットのプロトコルを駆使して、アプリケーションを構築する必要があります。 また関連するシステムの全てのコンポーネントが対応している必要がある、ロングトランザクションには向いていないなど、現実に実装する局面では様々な制約事項があります。 2フェーズコミットは、技術面、設計および実装面、コスト面、性能面などハードルが非常に高いため、実際には限られた領域での利用に留まっています。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 74
記事 Megumi Kakechi · 2023年3月19日 2m read VS Codeで設定可能な項目一覧と設定方法について Visual Studio Code 用のエクステンション(拡張機能)には、その動作を構成するための多くの設定が用意されています。 設定可能な項目一覧は、こちらの VS Codeドキュメント でご紹介しています(英語のみ)。 今回は、これらの設定の中で「コンパイルフラグを変更したい場合」の例で、設定の変更方法をご案内します。※コンパイルフラグの詳細については こちらの記事 をご覧ください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health #VSCode 0 0 0 351
記事 Mihoko Iijima · 2023年6月1日 7m read システム連携の自動的な流れの中にユーザからの指示を介入できる「ワークフローコンポーネント」のサンプル 開発者の皆さん、こんにちは。 先日のウェビナーでご紹介した「ワークフローコンポーネント」をお試しいただけるサンプルを公開しました。👉 https://github.com/Intersystems-jp/WorkFlow-DC 《サンプルのテーマ》 店舗で販売している商品に付けるPOPメッセージ候補を予めテーブルに登録できる仕組みが既にある、と仮定しています。 IRISの Interoperability を利用してPOPメッセージ候補が登録されるテーブルに対して一定間隔でSELECT文を実行し、未処理のメッセージを取得します。新たなレコードが存在する場合、ワークフローコンポーネントを利用して担当者に審査を依頼します。 担当者は、ワークフローユーザポータルを使用して、POPメッセージ候補の承認/却下を指示できるようにしています。 #Docker #Embedded Python #ビジネスオペレーション #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 140
記事 Hiroshi Sato · 2024年3月18日 1m read UTF-8のBOM付きのファイルを作成する方法 これは InterSystems FAQ サイトの記事です。 UTF-8(BOM付)のテキストファイルは以下のようにして作成可能です。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 26
記事 Mihoko Iijima · 2020年9月16日 1m read ObjectScript でプログラミングを行うときのエラー処理方法について これはInterSystems FAQ サイトの記事です。 サーバ側ロジックの記載に使用する ObjectScript でのエラーが発生した場合の対処方法については「ObjectScriptでエラーが発生したら」にまとめています。 ぜひご参照ください! #ObjectScript #エラーハンドリング #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 145
記事 Toshihiko Minamoto · 2020年12月1日 6m read SSH 接続する %Net.SSH.Session の使用とデバッグ方法 %Net.SSH.Session クラスを使用すると、SSH を使ってサーバーに接続することができます。 一般的にはSFTP、特に FTP インバウンドアダプタとFTPアウトバウンドアダプタで使用されています。 この記事では、簡単な例を示しながら、このクラスを使用して SSH サーバーに接続する方法、認証のオプションを記述する方法、そして問題が発生した場合のデバッグ方法について説明します。 次は接続を行う例です。 Set SSH = ##class(%Net.SSH.Session).%New() Set return=SSH.Connect("ftp.intersystems.com") 上記のコードは新しい接続を作成してから、ftp.intersystems.com の SFTP サーバーにデフォルトのポートで接続します。 この時点で、クライアントとサーバーは暗号化アルゴリズムとオプションを選択済みですが、ユーザーはまだログインしていません。 接続したら、認証方法を選択できます。 選択できるメソッドには次の 3 つがあります。 #FTP #デバッグ #ベストプラクティス #Caché #Ensemble #InterSystems IRIS 0 0 0 1.3K
記事 Megumi Kakechi · 2021年1月6日 1m read Webサービスでエラー発生時にエラー詳細情報を取得する方法 これは InterSystems FAQ サイトの記事です Web サービス(SOAP)またはREST で IIS を経由してクライアントにエラー応答する際、既定では IISが生成するデフォルトのエラーページ( HTTP 500 エラー )が返されます。 SoapFaultなど、サーバ側で出力したエラーの詳細情報は返されません。 IIS7 以降、WebクライアントがWeb サービスの障害の詳細情報を取得するための設定オプションが追加されました。 HTTP ステータスコードがエラーの場合に、既存の応答をどうするかを existingResponse 属性で指定することができます。 こちらの値を、既定の Auto から PassThrough に変更することで、エラーの詳細情報が返されるように変更できます。※設定変更後、IISの再起動が必要です。 #REST API #SOAP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 1.2K
記事 Megumi Kakechi · 2021年3月2日 2m read $ZF(-100) で実行したコマンドの出力を取得する方法 これは InterSystems FAQ サイトの記事です。※記事後半に、「2>&1」で 標準エラー出力(2) を 標準出力(1) にリダイレクトする方法を追記しました。 $ZF(-100) では実行したコマンドの出力を取得することはできませんが、代わりにコマンド・パイプ デバイスを使用する方法があります。 詳細は、以下ドキュメントをご参照ください。 コマンド・パイプ デバイスを使用する方法について こちらを %File クラスで使用した例が以下になります。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 376
記事 Hiroshi Sato · 2021年10月5日 2m read Webゲートウェイ/CSPゲートウェイの設定管理ページにどのクライアントからもアクセスできるようにする これは InterSystems FAQ サイトの記事です。Web/CSPゲートウェイ管理ページは、通常クライアントマシンからアクセスできないように構成されています。 任意のクライアントからアクセスするためには以下の操作を行います。 Web/CSPゲートウェイ管理ページにアクセス可能なシステムからブラウザを起動し、管理ポータルにアクセスします。管理ポータル>システム管理>構成>の所でCSPゲートウェイ管理をクリックします。表示されるページの左ペインに表示されるデフォルトパラメータをクリックします。 システム管理マシンの所に*.*.*.*と入力し、設定を保存ボタンを押下げます。 しかしながら任意のクライアントから管理ページにアクセスできるようにするのはセキュリティの観点からはあまりお勧めできません。アクセスできるクライアントはなるべく限定することをお勧めします。クライアントアドレスの指定方法としては、以下のような指定形式があります。 #CSP #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 276
記事 Hiroshi Sato · 2021年9月23日 1m read レコードマップで何ができるか? これは InterSystems FAQ サイトの記事です。レコード・マップは、区切り文字付きのレコードや固定幅のレコードを含むファイルをInteroperability機能で使用するメッセージクラスへマッピングしたり、Interoperability機能のメッセージクラスからテキストファイルへマッピングする作業を効率的に行うための機能です。 レコードマップのマッピング定義は管理ポータルで作成でき、CSVファイルを読み込ませながら定義するCSVレコードウィザードも提供しています。 プロダクションでレコードマップを利用する場合は、レコードマップ用ビジネス・サービス、またはビジネス・オペレーションを追加し、作成したレコードマップ定義クラスを指定すれば完成です。 使用例は、以下から取得できます。 レコードマップサンプル #ヒントとコツ #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 257
記事 Megumi Kakechi · 2021年6月16日 2m read コンソールログに出力されるアラート情報の意味 これは InterSystems FAQ サイトの記事です。 InterSystems製品のシステムモニタが色々なリソースの使用状況を監視しています。 そしてその使用状況に応じてアラートやワーニング情報をコンソールログ(message.log/cconsole.log)に出力します。 アラート情報が表示するCPUのリソースについては、以下のものが定義されています。 #ヒントとコツ #監視 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 238
記事 Toshihiko Minamoto · 2021年11月9日 18m read 別のIRISメッセージビューワを作成する IRISインターオペラビリティのメッセージビューワで何かを変更できるとしたら、何を変更しますか? #Docker #ObjectScript #InterSystems Package Manager (IPM) #ビジネスオペレーション #ビジネスサービス #メッセージ検索 #相互運用性 #Ensemble #InterSystems IRIS Open Exchange app 0 0 0 194
記事 Megumi Kakechi · 2022年2月23日 1m read ジャーナルファイルの使用量をチェックする方法 これは、InterSystems FAQサイトの記事です。現ジャーナルファイル名の取得は、ジャーナリング API を利用します。 ##class(%SYS.Journal.System).GetCurrentFileName() 現ジャーナルファイルの使用量bytesの取得は、ジャーナリング API を利用します。 ##class(%SYS.Journal.System).GetCurrentFileOffset() 実行例は以下の通りです。 #ジャーナリング #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 118
記事 Megumi Kakechi · 2022年10月13日 4m read デプロイモードで別環境にプログラムを配布する方法 以下、デプロイモード(配置モード)でプログラムを配布する方法を2つご紹介します。 ① DB内のソースコードをデプロイモードでエクスポートする方法 ② ソースコード用DBを用意してIRIS.datごとデプロイモードにする方法 ①は、プログラムのみデプロイモードでエクスポート/インポートできるので、初回システム構築時はもちろん、プログラムの修正が発生した時などソースの一部のみエクスポートすることも可能となります。②は、IRIS.dat ごとデプロイするので初回システム構築時に IRIS.dat のみ配置すればよく手順が単純です。 クラスがデプロイモードになると、そのクラスのメソッドとトリガのソースコードは削除されます。クラスがデータ型クラスである場合、クエリキャッシュによって実行時にメソッド定義が必要になる可能性があるために、メソッド定義が保持されるのでご注意ください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 159
記事 Mihoko Iijima · 2023年6月2日 6m read 任意のWebアプリから呼び出せるワークフロー用 REST API の使い方 開発者の皆さん、こんにちは! この記事では、ワークフローコンポーネントを使ってみよう!~使用手順解説~ でご紹介したユーザ操作画面(ユーザポータル)を任意のWebアプリに変更する際に便利な REST API の使用方法をご紹介します。 ワークフロー用 REST APIですが、開発者コミュニティのサンプル公開ページ:Open Exchange に公開されているAPIでどなたでも自由にご利用いただけます。 Open Exchangeの検索ボックスに「Workflow rest」と入力すると出てきます。EnsembleWorkflow が対象のサンプルです。 ちなみに、2023年6月2日時点で724のアプリケーションが公開されているようです👀 #REST API #ヒントとコツ #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 132