この記事では、従来のIRISミラーリング構成の代わりに、Kubernetesの Deploymentと分散永続ストレージを使って高可用性IRIS構成を構築します。 このデプロイでは、ノード、ストレージ、アベイラビリティーゾーンといったインフラストラクチャ関連の障害に耐えることが可能です。 以下に説明する方法を使用することで、RTOがわずかに延長されますが、デプロイの複雑さが大幅に軽減されます。
開発者の皆さん、こんにちは!
世界中の開発者からの熱いご要望により、新たなコンテストの開催が決定しました!
🏆 InterSystems IRIS プログラミングコンテスト: 開発者ツール 🏆
応募期間は 2021年3月29日~4月18日 です!
💰 賞金総額: $8,500 💰
(投票期間は 2021年4月19日~25日、勝者発表は 4月26日を予定しています)
InterSystems IRIS を使用して、開発の迅速化、より質の高いコードの提供、テスト、デプロイ、サポート、またはソリューションの監視を支援するアプリケーションやツールを開発し、ご応募ください!
優勝特典
1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。
🥇 1位 - $4,000
🥈 2位 - $2,000
🥉 3位 - $1,000
2、開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。
🥇 1位 - $750
🥈 2位 - $500
🥉 3位 - $250
複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。
参加資格
どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)
👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます!
InterSystems IRIS では、情報を格納する「グローバル」というユニークなデータ構造をサポートしています。 基本的に、グローバルとは、マルチレベルのインデックスを持つ永続配列であり、トランザクションの実行やツリー構造のスピーディなトラバーサルといった機能が備えられているほか、ObjectScript として知られるプログラミング言語にも対応しています。
ここから先、少なくともコードサンプルについては、グローバルの基礎を理解されているという想定のもとに話しを進めていきます。
グローバルはデータを保存するための魔法の剣です パート1
グローバルはデータを保存するための魔法の剣ですパート2 - ツリー
グローバルはデータを保存するための魔法の剣です パート3 - 疎な配列
グローバルは、普通のテーブルとは全く異なる構造でデータを格納し、OSI モデルの下位層で動作します。 それでは、グローバルを使ったトランザクションとはいかなるもので、どのような特性が見られるのでしょうか。
リレーショナルデータベースの理論では、ACID テスト (Wikipedia で ACID を参照する) に合格するトランザクションこそが、適切に実装されたトランザクションとされています。
- 不可分性: トランザクションで発生する変更内容がすべて記録されるか、そのいずれも記録されない。
こんにちは、皆さん
私は、%CSP.WebSocketの非同期動作(SharedConnection=1)で、ソケットのクローズを検知する手段が見つからなくて困っています。
WebアプリケーションとIRIS間でソケットの接続、データの送受信は出来ましたが、Webアプリケーション側でソケットクローズしたとき、IRIS側でそれを検知する方法が分かりませんでした。
どなたか、IRIS(サーバ側)でソケットのクローズを検知する方法をご存じでしたら教えて下さい。
開発者の皆さん、こんにちは。
最近、インターシステムズ開発者コミュニティにより貢献したいという要望が多く寄せられます。
やり方は簡単です。
1. 質問に答える
開発者コミュニティには多くの 回答のない質問や ベストアンサーのない質問 があります。ぜひ、あなたの知識をシェアして他のメンバーを助けてあげてください。
2. 記事の投稿に貢献する
インターシステムズの技術を使ったあなたの経験をぜひ記事に書いてください。ソリューションや開発時のノウハウ、デバッグ時のTipsやトリック、システム構築、その他、健全な開発をするためのその他のアプローチなど、何でも構いません。
こちらには、コミュニティにとって有益となる記事の例がたくさんあり、各国の言語に翻訳されています。
3. Open Exchangeのアプリケーションに貢献する
あなたのライブラリやソリューション、ツールをGithubやGitlabのリポジトリを使って Open Exchange でシェアしてください。
これは InterSystems FAQ サイトの記事です。
REST アプリケーションはステートレスであることが想定されています。
しかし、複数の REST 呼び出し間でデータを保持したい場合などの理由で、Webセッションを使用したい場合は、UseSession パラメータを使用することができます。
以下のように、Web アプリケーションのディスパッチクラスとして定義された %CSP.REST のサブクラスでUseSession パラメータを指定することで、CSPと同じようにWebセッションを使用することが可能となります。
Class REST.MyServices Extends %CSP.REST
{
Parameter UseSession As Integer = 1;
詳細は以下のドキュメントをご覧ください。
以下は、UseSession パラメータを使用した簡単なサンプルになります。最初に、2つのクラスを作成してください。
*
Class REST.SessionTest Extends %CSP.デベロッパーの皆さん、こんにちは!
最近、当社は InterSystems Package Manager (ZPM) をリリースしました。 ZPM を開発した理由の 1 つは、ソリューションをパッケージ化して ZPM レジストリに提出することにより、そのデプロイを「install xxx package」のようなコマンドを実行するだけの単純な作業にするためです。
これを行うには、InterSystems IRIS パッケージの中身を説明する module.xml ファイルをリポジトリに導入する必要があります。
この記事では、module.xml ファイルの異なる構成要素を説明し、独自のファイルを作成する方法をご紹介します。
まずは、samples-objectscript パッケージから始めます。以下のコマンドを実行すれば、IRIS に ObjectScript のサンプルアプリケーションがインストールされます。
zpm: USER>install samples-objectscript
おそらく、これほどシンプルなパッケージはないと思います。以下は、パッケージの中身を説明する module.xml です。
<Export generator="Cache" version="25">
<Document name="samples-objectscript.ZPM">
<Module>
<Name>samples-objectscript</Name>
<Version>1.0.0</Version>
<Packaging>module</Packaging>
<SourcesRoot>src</SourcesRoot>
<Resource Name="ObjectScript.PKG"/>
</Module>
</Document>
</Export>これは InterSystems FAQ サイトの記事です。
ダイナミックオブジェクトから JSON 文字列を生成するときに使用する %ToJSON() の引数にストリームオブジェクトを指定することでエラーを回避できます。
コード例は以下の通りです。
USER>set temp=##class(%Stream.TmpCharacter).%New()
USER>set jsonobj={}
USER>set jsonobj.pro1=["a","b","c","d"]
USER>set jsonobj.pro2=["あ","い","う","え"]
USER>do jsonobj.%ToJSON(temp)
USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}
詳細はドキュメントもご参照下さい。
開発者の皆さんこんにちは!
第10回 InterSystems グランプリ・プログラミングコンテスト への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。
今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します!

🏆 Experts Nomination - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。
🥇 1位 - $6,000 は vscode-intersystems-iris を開発された @Dmitriy Maslennikov さんに贈られました!
🥈 2位 - $3,000 は iris-rad-studio を開発された @Henrique Dias Dias さんに贈られました!
🥉 3位 - $2,000 は HealthInfoQueryLayer を開発された @Botai Zhang さんに贈られました!
🏆 Community Nomination - 最も多くの票を獲得したアプリケーションに贈られます。
🥇 1位 - $3,000 は HealthInfoQueryLayer を開発された @Botai Zhang さんに贈られました!
これまで Caché のリソースアクセスを制御する方法が存在するかどうかを疑問に思っていた方の悩みを解決しました。 バージョン 2014.2 では、開発者がセマフォを操作できるようにする特別なクラスが追加されました。
これは InterSystems FAQ サイトの記事です。
INFORMATION_SCHEMA スキーマを使用して取得できます。
INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルの SQL メニューに表示されません。
表示させる方法は以下の通りです。
- 管理ポータル→システムエクスプローラ→SQL メニューを開きます。
- スキーマのプルダウン左にある「システム」をチェックします。
- スキーマのプルダウンから INFORMATION_SCHEMA を選択します。
.png)
指定のテーブル(Test.Person)に対するID、フィールド名(COLUMN_NAME)、データタイプ(DATA_TYPE)、説明(DESCRIPTION)を取得するSQLは以下の通りです。
SELECT ID,COLUMN_NAME,DATA_TYPE,DESCRIPTION
FROM INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA='Test' AND TABLE_NAME='Person'
関連するFAQトピックもご参照ください:「プログラムから、クラス定義に記述されたプロパティ定義を取得する方法はありますか?」
これは InterSystems FAQ サイトの記事です。
SYS.ApplicationError クラスの ErrorList クエリを使用します。
注意1:%SYS ネームスペースで実行します。
注意2:ストアド化していないユーティリティのため %SQL.Statement ではなく %ResultSet クラスを利用します。
コマンド実行例は以下の通りです。
USER>set $namespace="%SYS" //または zn "%SYS"
%SYS>set rset=##class(%ResultSet).%New()
%SYS>set rset.ClassName="SYS.ApplicationError"
%SYS>set rset.QueryName="ErrorList"
// クエリの第1引数はネームスペース名、第2引数は日付を指定します(形式:MM/DD/YYYY)
%SYS>do rset.Execute("USER","08/17/2020")
// 画面に結果を表示させる場合は %Display()メソッドを実行します。
%SYS>do rset.弊社では、Cacheの時からExcel(VBA)を使用して、Cache側のクラス定義を抽出して画面に表示する、という開発サポートツールを作成して使用していました。
今回、IRISベースでの開発に移行するにあたって、このExcel(VBA)の動作確認をしました。
実施したことは、VBAのエディタ画面にあるメニューから「ツール」→「参照設定」へと進み、表示される選択リストの「CacheActiveX3.0[IRIS] Type Library」を選択しなおすことで、VBAのコードを変更することなく動作する事が確認できました。
このようなExcel(VBA)への対応はカットされたのではないかと不安がありましたが、流石ですね、ちゃんとカバーされていました。
なお、Type Libraryの名称が「CacheActiveX」で始まっていたのはご愛嬌でしょうか?Cache経験者であれば、問題ないと思いましたが、IRISから使い始めた方にとっては、少々困惑されるかも、と感じました。
Excel(VBA)でIRISに接続する事例がどの程度存在するのかは不明ですが、Excel(VBA)でIRISに接続できると便利だと感じています。今時ですから、ODBC を使った方が分かりやすいかも知れませんね。
これは InterSystems FAQ サイトの記事です。
永続クラス(=テーブル)定義に提供される %BuildIndices() メソッドの引数に、インデックスを再構築したい ID の開始値と終了値を指定することにより、その範囲内のインデックスのみが再構築できます。
例えば、Sample.Person クラスにある NameIDX インデックスと ZipCode インデックスを ID=10~20 のみ再構築する場合は、以下のように実行します(ID の範囲は、第5引数、第6引数に指定してます)。
set status = ##class(Sample.Person).%BuildIndices($LB("NameIDX","ZipCode"),1,,1,10,20)
$LB() は $ListBuild() 関数で、%BuildIndices() メソッドでは、インデックス名を指定するために使用しています。
インデックスの再構築方法については、ドキュメントもご参照ください。
2018.1 以下はこちらのドキュメントをご参照ください。
これは InterSystems FAQ サイトの記事です。
※ ここで説明するバックアップ方法は、外部バックアップ(##class(Backup.General).ExternalFreeze()を使用する方法)ではご利用いただけません。
その1(差分)
毎週日曜日1時にフルバックアップ、月曜日~土曜日の1時に差分バックアップを取得しているとします。
差分バックアップは、前日の1時に取得したバックアップからの更新ブロックが含まれるバックアップです。
.png)
その2(累積)
毎週日曜日1時にフルバックアップ、月~火曜日の1時に差分バックアップ、水曜日1時に累積バックアップ、木~土曜日の1時に差分バックアップを取得するとします。
累積バックアップは、前回のフルバックアップからの更新ブロックが含まれるバックアップで、水曜日に累積バックアップを取得した場合、月曜日と火曜日の差分バックアップは水曜日に累積バックアップに含まれるため、累積バックアップ成功後、月曜日と火曜日に差分バックアップは破棄できます。
.png)
オンラインバックアップ詳細については「データベースのバックアップ方法について」や、下記ドキュメントをご参照ください。
<Ubuntu-Docker>
https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d 手順を参照
手順2.1-2.5までを実行→Docker環境ができる
<Docker-IRIS>
1. 端末などでディレクトリ /home/usr/docker/iris2020.3 を作成(ディレクトリ名は任意)
2. 上記ディレクトリに、インターシステムズから送られるDLサイトからダウンロードしたirishealth_ml-2020.3.0.304.0-docker.tar.gz を置く
2.1 上記ディレクトリに、データベース・設定を保存するディレクトリを作成(/home/usr/docker/iris2020.3/mgr とする)
3. 上記ディレクトリに、ライセンスされたキーであるiris.keyを置き、端末コマンドcdで上記ディレクトリに移動
4. コマンド実行(tar.gzのままimageのload)
sudo docker load -i /home/usr/docker/iris2020.3/irishealth_ml-2020.3.0.304.0-docker.tar.gz
5.
カタカナ→ローマ字変換ができるサンプルクラスはありませんでしょうか?
マッピングの例
三連載で 4 記事目を書いてしまったら、これまでのハイライトとして 5 記事目を書かないわけにはいかないでしょう!
注意: 何年か前に Dan Shusman 氏が私に「グローパルのマッピングは芸術だ」と言いました。 そのやり方に正解も不正解もありません。 どのようなマッピングを行うかは、データをどう解釈するかで決まります。 例のごとく、最終的な結論を出す方法は 1 つに限られません。 ここでご紹介する例の中には、同じ型のデータを異なる方法でマッピングする例がいくつかあります。
この記事の最後には、私が長年お客様のために書いてきたマッピングの例をまとめた zip ファイルをご用意しています。 過去 4 つの記事で触れた内容をまとめたハイライトとして、いくつか例を挙げていきたいと思います。 この記事は単なるハイライトですので、過去 4 記事ほどの詳細はカバーいたしません。 不明な点があれば、遠慮なくご連絡ください。もっと詳しく説明させていただきます。
Row ID Spec: クラス例: Mapping.RowIdSpec.xml
これについては、過去の記事で何度か断言していますが、 これを定義する必要があるのは、添え字の式が単純なフィールドではない場合に限ります。
これは InterSystems FAQ サイトの記事です。
InterSystems製品を停止しないバックアップ方法は、3種類あります。
① 外部バックアップ
② オンライバックアップ
③ レガシー並行外部バックアップ
各詳細については、以下ドキュメントをご参照ください。
バックアップ方法について【IRIS】
バックアップ方法について
それぞれの特徴について、簡単に解説します。
① 外部バックアップ
外部バックアップでは、SANシステム等のストレージ機能を利用して、データベースファイル(InterSystems IRIS の場合は IRIS.DAT、Caché/Ensemble/HealthShareの場合は CACHE.DAT)のスナップショットを作成する間だけ、データベースへの書き込みを停止させます。
スナップショット作成中は、データベースへの書き込みは停止されますが、ユーザ・プロセスによるメモリ内の更新は引き続き実行できます。
しかし、スナップショット機能がなく、バックアップ対象のデータベースを、退避エリアにコピーするような場合、データベースファイル(*.DAT)のファイルサイズが大きければ大きい程、コピーに時間がかかります。
コピーに時間がかかれば、データベースへの書き込み停止時間も長くなります。
これは InterSystems FAQ サイトの記事です。
通常SQLCODE -110(Locking conflict in filing)のエラーはロックが競合した場合に発生します。
大量レコードが一度に更新された場合、その件数がロック閾値を超えてロックエスカレーションを起こしてテーブルロックとなる可能性があり、そのためにロックの競合が起きやすくなっていることが考えられます。
このロック閾値を上げることにより、この競合を回避できる可能性もあります。
しかしこの閾値を上げることにより、システムが必要とするロック管理用のメモリが増えるという副作用がありますので、慎重な検討が必要です。
あるいはテーブルロックになる可能性を排除できずに、更新タイミング等アプリケーションの仕様を見直す必要があるかもしれません。
またSQLCODE -110はロックテーブルの空き容量が不足した場合にも発生する可能性があります。
コンソールログファイル(※)をご確認いただき、「LOCK TABLE FULL!!!」のエラーが記録されているようであれば、ロックテーブルの容量不足が原因です。
※ InterSystems IRIS のコンソールログファイル名は messages.
これは InterSystems FAQ サイトの記事です。
InterSystems Data Platform自身には、ソース管理を行う機能はありません。
2016.2以降のバージョンをご使用の場合、統合開発環境として VSCode をご利用いただくことで、VSCode でご利用いただけるソース管理機能をご使用いただけます。
VSCode で ObjectScriptの操作を行うためには、専用エクステンションのインストールが必要です。
使用方法については、コミュニティの記事「VSCode を使ってみよう!」をご参照ください。
また、「VSCodeでのソースコード管理について」についても併せてご参照ください。
2016.2より前のバージョンをご使用の方でも使用できる方法としては、InterSystems製品 のIDEであるスタジオに、外部のソース管理ツール、製品と連携するためのフック機能があります。
このフック機能は、複数のAPIで構成されており、お客様毎にご自身の環境に合わせて、作りこむことを前提に提供されております。
よく使われるマイクロソフトのVisual Source SafeとSubversion(SVN)については、テンプレートがあります。
このテンプレートを利用すると、作りこみの作業を短縮することが可能です。
今思えば、製品名に「M」が付いている時代は説明が楽でした。私が記憶している製品は、DTM(Data Tree Mumps:MS-DOS上で巨大なシステムを構築できていましたね)、DSM(Dec Standard Mumps)、MSM(マイクロネティック Standard Mumps あってますか?)、ISM(Intersystems Standard Mumps)、U-MUMPS(?)その他もあったかも知れませんが、M(Mumps)の実装環境です、という説明で何とかなっていました。すると、「へぇ~、MUMPSってまだあったんだね」という答えを頂くこともありました。これらの製品が統合されて「OpenM」となりましたが、まだ「M」の文字が入っており、MUMPSもSQL対応できるようになりました、などと説明していました。
ところが、製品名がCacheになり、趣が大きく変わり、製品の説明が難しくなりました。「データベースです。」→「RDBなの?」→「RDBとしても動作しますがKey-Value的で多次元データ管理もできます」→「OLAP用なの?」→「OLAP処理もできますが、基本はトランザクション処理用です」→「で、結局、何なの」という禅問答のような状況にはまって行きました。
そして、IRISです。Cache+α+β+θ.
これは InterSystems FAQ サイトの記事です。
管理ポータル:システムオペレーション > データベース にあるオプションボタン(ラジオボタン)「空き容量ビュー」で表示される内容は、システムクラス SYS.Database のFreeSpace クエリで取得可能です。
次のようなコードでクエリを実行します。
例:
(%SYSネームスペースにて作成、実行します)
/// ZISJ.mac
Set stmt=##class(%SQL.Statement).%New()
Set status=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
Set rs=stmt.%Execute()
While rs.%Next() {
Write !
For i=1:1:9 {
Write rs.%GetData(i),","
}
}
もしくは、以下のようにも行えます。
/// ZISJ.mac
Set stmt=##class(%SQL.Statement).%New()
Set status=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
Set rs=stmt.%Execute()
Do rs.グローバルをクラスにマッピングする技術 (4/3)
三連載のはずが 4 記事目に突入してしまいました。『銀河ヒッチハイク・ガイド』のファンという方はいませんか?
古くなった MUMPS アプリケーションに新たな生命を吹き込みたいとお考えですか? 以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。
上の内容に馴染みが無い方は、以下の記事を初めからお読みください。
この記事は Joel、あなたのために書きます! 前回の例で定義した親子関係を土台に、今度は孫クラスを作成し、^ParentChild グローバルに追加された季節情報を処理したいと思います。
前回と同じ免責事項: これらの記事を読んでもグローバルがよく理解できないという方は、WRC (Support@InterSystems.com) までメールでお問い合わせください。喜んでサポートさせていただきます。
グローバルをクラスにマッピングするステップ。
- グローバルデータが繰り返し使用されるパターンを特定する。
- 固有キーの構成を特定する。
- プロパティとそれぞれの型を特定する。
開発者の皆さん
こんにちは。
Windows共有しているリモートサーバに出力されたファイルでデータ連携する際、セキュリティ上、資格情報が必要となるケースが良くあるかと思います。いままでCachéで連携していた時には%ZSTARTルーチンや常駐プロセスのルーチンにて「net useコマンド」を実行されていたかと思いますが、IRISではInteroperability機能が使用できますので、前回の記事で作成したビジネスサービスクラスを元に、資格情報を使ってWindows共有フォルダにアクセスできる機能を追加したいと思います。
仕組み
ビジネスサービスが起動、停止する際に呼び出されるOnInit()、OnTearDown()メソッドにnet useコマンドを埋め込み、指定されている資格情報を使ってnet useコマンドで共有フォルダへの接続、切断を行います。
認証情報設定パラメータ追加
ビジネスサービスの設定画面で認証情報を選択できるよう、以下のようにCredentialsプロパティ、SETTINGSパラメータをTest.BS.ImportMasterクラスに設定します。
開発者のみなさん、こんにちは!
第10回 InterSystems グランプリ・プログラミングコンテストの投票が開始されました!
🔥 これだ!と思う一押し作品に投票お願いします! 🔥
投票期間:3月1日~7日 (1週間)
投票方法は?
コミュニティメンバーはどなたでも投票いただけます!
投票種別は、Expert Nomination と Community Nomination に分かれています。コミュニティメンバーは、Community Nomination を選択いただき、どの作品がどの順位になるかを指定しながら投票してください!
Community Leaderboard:
| 順位 | ポイント |
|---|---|
| 1位 | 3点 |
| 2位 | 2点 |
| 3位 | 1点 |
そして、エキスパートノミネーションからの投票は以下の通りです(エキスパートのレベルが上がると獲得できるポイントも増えます!)。
これは InterSystems FAQ サイトの記事です。
%SYS.ProcessQuery クラスの AllFields クエリを使用すると取得できます。
詳細は、ドキュメント「プロセス(ジョブ)について【IRIS】 / プロセス(ジョブ)について」もご参照ください。
ターミナルでの実行例は以下の通りです。
USER>set stmt=##class(%SQL.Statement).%New()
USER>set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
USER>write st // 1が戻ったら%Execute()を実行できます
1
USER>set rset=stmt.%Execute()
// Job番号-PID-OSユーザ名-カレントデバイス-ルーチン-状態-ユーザ名 を表示しています。
USER>while rset.%Next() { write rset.%Get("JobNumber"),"-",rset.%Get("Pid"),"-",rset.%Get("OSUserName"),"-",rset.%Get("CurrentDevice"),"-",rset.%Get("Routine"),"-",rset.%Get("State"),"-",rset.これは InterSystems FAQ サイトの記事です
復旧を優先される場合を除き 【トラブル発生状態のまま】弊社サポートセンターまでご連絡ください。
その際、専用ツールを利用して情報収集いただくことで(所要時間約 5分)、サポートセンターによる状況確認がスムーズに行えます。
ツール使用方法については、PDF または以下ビデオでご紹介しています。
※ InterSystems IRIS / IRIS for Health をご利用の方は、こちらの記事をご参照ください。
ぜひ 1 度、テスト/開発環境で実行をお試しいただき、万が一の場合に備えていただければ思います。
これは InterSystems FAQ サイトの記事です。
復旧を優先される場合を除き 【トラブル発生状態のまま】弊社サポートセンターまでご連絡ください。
その際、専用ツールを利用して情報収集いただくことで(所要時間約 5分)、サポートセンターによる状況確認がスムーズに行えます。
ツール使用方法については、PDF または以下ビデオでご紹介しています。
※ Caché/Ensemble/Caché ベースの HealthConnect をご利用の方は、こちらの記事をご参照ください。
ぜひ 1 度、テスト/開発環境で実行をお試しいただき、万が一の場合に備えていただければ思います。
ビデオの目次(YouTubeでもご覧いただけます)
0:00~1:40 情報収集ツールを使用する上での大事なポイント
1:41~2:24 ツールの種類について
2:24~3:45 どのツールを実行したらいいか困った時の考え方
3:45~5:04 管理ポータルの診断レポートの例
5:04~6:30 ^SystemCheckの実行例
6:30~7:50 IRISHungスクリプトの実行例(Linuxの例)
7:50~8:50 IRISHungスクリプトの実行例(Windowsの例)
8:50~9:52 ツールから生成されたHTMLのファイル名について
9:52~11:32 ツールから生成されたHTMLの中身について
11:32~ まとめ
はじめまして、皆さん。
windows telnetを使えば、VSCODEの統合ターミナルでIRISターミナルを使うことも出来ますが、ストレス無く使えるとは言い難い状態でした。
色々調べた結果、telnetよりは快適にIRISターミナルをVSCODEで使う設定が出来たので投稿します。
(※大量のキー連打や、大量表示で文字欠落がたまにあるけど、普通に使うなら大丈夫な感じです)
具体的には、powershellターミナルを文字コード:UTF-8に変更しIrisdb.exeを起動する様に設定するだけでOKです。
1.VSCODEの設定を開く
.png)
2.setting.jsonを開く
.png)
3.setting.jsonの最後に設定を追加する。
.png)
追加するテキスト
"terminal.integrated.shellArgs.windows": [ // powershellの引数
"-NoExit", // コマンド実行しても終わらないよ的なオプション
"-Command", // コマンドを実行しますよオプション
"chcp", // 文字コードを指定するコマンド
"65001;", // UTF-8
"C:\\InterSystems\\IRIS\\bin\\irisDb.exe", // irisdb.



