記事 Hiroshi Sato · 2022年8月28日 1m read 特定のテーブルデータのみをロールバックしないようにする これは InterSystems FAQ サイトの記事です。 実行ログデータなどトランザクション中にロールバックが発生しても前の状態に戻ってほしくないデータがあります。 それらのデータをロールバックされないデータベースIRISTEMPに配置することで上記の要件に対応できます。 一時グローバルと IRISTEMP データベース ロールバックさせたくないテーブルの実体をこのデータベースにマッピングすることでロールバック後に情報を残すことができます。 ただし、このデータベースはIRIS再起動で内容がクリアされますので、永続的に保持したい場合には、いずれかのタイミング(ロールバック後等)で永続テーブルにコピーを行う必要があります。 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 212
記事 Hiroshi Sato · 2022年8月22日 1m read 正規表現を使ってパターンに一致した部分文字列を取得する方法 これは InterSystems FAQ サイトの記事です。 正規表現を使用する$Locate()関数がご使用いただけます。 正規表現の使用方法 使用方法の例は以下の様になります。 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 190
記事 Hiroshi Sato · 2022年8月8日 1m read TCP アダプタの StayConnected の設定に関する注意点 これは InterSystems FAQ サイトの記事です。 TCP アダプタを使用するビジネスホストの [接続中を維持(StayConnected)]と[プールサイズ(PoolSize)]のデフォルト設定値は以下の通りです。 StayConnected = -1(常時接続タイムアウト無し)PoolSize = 1 ネットワークの問題でビジネスホストへの接続が切断された場合に、プロダクション側では切断されたことを検知できないため新しい接続を受け付けません。 またこの状況の時、イベントログにも記録されません。 StayConnected が デフォルト値(-1)の場合、接続がタイムアウトしないため新しい接続を受け付けるためには、ビジネスホストを再起動する必要があります。 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 139
記事 Hiroshi Sato · 2022年8月8日 1m read コンソールログにメッセージを書く方法 これは InterSystems FAQ サイトの記事です。 コンソールログに任意のメッセージを書き込む方法として%SYS.System クラスの WriteToConsoleLog メソッドを使用することができます。 以下に例を示します。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 120
記事 Hiroshi Sato · 2022年8月1日 1m read ユーザーがブラウザの閉じるボタン(Xボタン)を押してCSPページを終了した時にサーバで検知する方法 これは InterSystems FAQ サイトの記事です。 残念ながら良い方法はありません。 もし処理の流れとして突然処理を中断されると不都合がある場合には、OnunloadHandler内でalertメソッドにより、Xボタンを押さないように注意を促すようなメッセージを出す方法が考えられます。 一般的には、ユーザ都合で処理中断されてもサーバ側処理内でデータの整合性等に不都合が発生しない様にアプリケーションの実装を行う必要があります。 ページのアンロード時に呼び出されるOnunloadHandler内でサーバ・メソッドを呼び出す方法は様々な問題があるため、使用することはお勧めしません。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 146
記事 Hiroshi Sato · 2022年7月25日 1m read InterSystems ObjectScriptの型キャストサポートについて これは InterSystems FAQ サイトの記事です。 ObjectScript言語は、Java言語等がサポートしている型キャストをサポートしていません。 ただし、メソッドのキャストはサポートしています。 詳細は以下ドキュメントページをご参照ください。 メソッドのキャスト【IRIS】メソッドのキャスト #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 172
記事 Hiroshi Sato · 2022年7月25日 1m read ミラーリングでデータベース以外のファイルを同期する方法 これは InterSystems FAQ サイトの記事です。 ミラーリングが同期の対象とするのはデータベースファイルのみです。 アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、 NASなどを導入して共有ディスク上にそれらのファイルを配置する方法 または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法 などの方法が考えられます。 また、2の方法ではWindows上ではRoboCopy、Linuxの場合にはrsyncという同期ソフトを使った実例があります。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 127
記事 Hiroshi Sato · 2022年7月20日 2m read IRISの開始/停止の状態をファイルに出力する方法 irisコマンドのqlistまたはlistを使用して出力先をファイルにして出力することができます。 qlistの結果は、^を区切り文字としたテキスト形式で出力されます。 ^で区切られた3番目の部分に稼働状況のデータがあります。 $ iris qlist IRIS > iris.log $ cat iris.log IRIS^/Applications/iris^2022.1.0.164.0^running, since Thu Apr 7 16:37:03 2022^iris.cpf^1972^52773^0^alert^IRIS^^^/Applications/iris listの場合には、先頭にstatus:と表示された行に稼働状況のデータがあります。 Unix系のOSの場合 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 113
記事 Hiroshi Sato · 2022年7月20日 2m read タスクの起動でエラーが発生した時にメールで通知する方法 タスク成功時・失敗時、それぞれ通知メールを送信することができます。 そのためには事前にターミナルからTASKMGRルーチン を実行して、メールサーバを登録する必要があります。 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 477
記事 Hiroshi Sato · 2022年7月11日 2m read ルーチンやクラスメソッドをWindowsのコマンドプロンプトから呼び出す方法 iris コマンドを使用することで実行できます。iris コマンド(iris.exe)は、<インストールディレクトリ>\bin にインストールされています。 書式: iris run インスタンス名 tag^routine([parameter-list]) ネームスペース名 iris run インスタンス名 ##CLASS(package.class).method([parameter-list]) ネームスペース名 インスタンス名は、管理ポータル(システム管理ポータル)の右上にある [インスタンス:] に表示されている文字列です。 #システム管理 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 514
記事 Hiroshi Sato · 2022年7月11日 3m read InterSystems IRISをインストールする場合の最低システム要件 CPU:サポート対象OSが問題なく動作するもの以下のページをご参考ください。 サポート対象プラットフォーム ディスク容量:アプリケーションの要件を除外した場合、 IRISをインストールするためには、最低1.5GB以上の空き容量が必要です。 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 514
記事 Hiroshi Sato · 2022年7月11日 1m read 外部の Pythonファイル を Embedded Python で呼び出す方法 IRISがc:\InterSystems\IRISにインストールされているとします。(1) a.py を C:\InterSystems\IRIS\lib\python に置きます。 a.py def test(): print('Hello World!') (2) それを IRISのクラスから実行します。 #Embedded Python #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 454
記事 Hiroshi Sato · 2022年6月1日 3m read ODBCを利用してVisM.OCX(Cache Direct)をエミュレーションする Cachéでは、今後の新しいOSのサポート、例えばWindows 11やWindows 2022のサポートは行われないことになりました。 いよいよ新しいサーバハードウェアを導入するとCachéが使えなくなる可能性が高くなってきました。 皆さんIRISへの移行をお早目にご検討ください。 IRISへの移行の際に障害となるものの1つがVisM.OCXを利用したアプリケーションの移行です。 IRISでもこの機能は制限付きで利用可能です。 しかし、そのためには少々面倒な手続きが必要です。 (この手続きについてはインターシステムズにお問い合わせください) しかもこの手続きも暫定処置で将来なくなる可能性もゼロではありません。 ところでなんでそんな面倒くさい手続きが必要なのと感じた人もいると思います。 その理由は、 VisM.OCXがマイクロソフトの非常に古い技術を利用していて、開発元のマイクロソフトもそれを全くサポートしていませんし、セキュリティ脆弱性への対応等も全く行われていません。 そんな技術なんで、インターシステムズも技術サポートするのが困難です。 #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 339
記事 Hiroshi Sato · 2022年3月27日 2m read .Net Gateway(オブジェクトゲートウェイ)で外部DLLを使用する方法 これはInterSystems FAQ サイトの記事です。 まず予め Visual Studioを使用して、呼び出したい内容のクラスライブラリを作成します。 そのプロジェクトをコンパイルし、DLLを作成します。 管理ポータルでオブジェクトゲートウェイを作成します。 システム管理 > 構成 > 接続性 > オブジェクトゲートウェイ ゲートウェイ名 : testGateway サーバ名 / IPアドレス : 127.0.0.1 ポート : 55000 (後はデフォルト) testGateway を開始します。 ※管理ポータルから、もしくはコマンドから開始できます。 #ヒントとコツ #相互運用性 #Caché #Ensemble 0 0 0 352
記事 Hiroshi Sato · 2022年3月23日 2m read 現在使用しているリレーショナルデータベースで壁に突き当たっています。インターシステムズのテクノロジを利用することはできますか。 もし現在ご使用のデータベース技術で壁に突き当たっていると感じておられるならば、是非InterSystems IRIS Data Platformへの移行をご検討ください。 (以下IRIS) IRISに移行するに際して、現行のプログラム資産を全て書き換える必要はありません。 IRISに移行する際には、以下の手順で進めることを推奨しております。 アプリケーションコードをそのまま流用し、動作させるために、現在のデータベースからIRISへの移行を行います。 既存のRDBMSのデータ定義(DDL文で記述されたもの)をIRISに取り込むことで、リレーショナルとオブジェクトの両モデルからアクセスが可能となるため、必要に応じてオブジェクト・アクセスが妥当である処理に対しては、アプリケーションプログラムの修正など、対応策が選択できます。 さらにXMLやJSONなどのドキュメント形式のデータの取り扱いも容易ですので、RestFullなアプリケーション構築にも向いています。 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 183
記事 Hiroshi Sato · 2022年3月23日 2m read 現在使っているリレーショナルデータベースからInterSystems IRIS Data Platformに移行することは可能ですか? 質問 現在使っているリレーショナルデータベースからInterSystems IRIS Data Platformに移行することは可能ですか? 答え InterSystems IRIS Data Platform(以下IRISと表記)は、SQLをサポートしていますので、多くの場合リレーショナルデータベースで構築されたアプリケーションは、大部分のコードを変更することなくIRISに移行することができます。 ただしSQLの各実装毎にSQL標準を拡張した仕様等があり、それにIRISが全て対応していませんので、コードの書き換えが必要なケースもあります。 また各実装が独自に用意した標準でない通信系API等にも対応していませんので、その場合にはJDBC、ODBCなどの標準的な通信APIに置き換える必要があり、かなり書き換えが必要になります。(使用されているSQL文等はそのまま流用可能な場合が多いです。) さらにそのままコードを移行できるケースであっても動作保証はできませんので、必ず動作確認のためのテスト作業は必要になります。 #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 109
記事 Hiroshi Sato · 2022年3月23日 1m read ObjectScript言語でイメージファイルをWEBサーバからダウンロードする方法 これは InterSystems FAQ サイトの記事です。 以下のコードは、https://www.intersystems.com/assets/intersystems-logo.png をダウンロードし、c:\temp\test.pngとしてファイルを保存する例になります。 以下のコードを動作させるためには、SSLTESTという名前のSSL定義を作成しておく必要があります。 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 159
記事 Hiroshi Sato · 2021年12月28日 2m read コンパイルフラグについて これは InterSystems FAQ サイトの記事です。 コンパイル時のフラグや修飾子の記号と意味については、以下ドキュメントをご参照ください。 コンパイルフラグについて【IRIS】 コンパイルフラグについて なお、開発環境のスタジオやVisual Studio Codeでは、開発環境の設定画面でフラグを変更できます。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 688
記事 Hiroshi Sato · 2021年12月28日 1m read MS Accessからのクエリで取得されるデータ項目値が全て"#Deleted"と表示される場合の対処方法 これは、InterSystems FAQサイトの記事です。 データ項目の値が”#Deleted"と表示される場合、MS Accessの設定でこの問題を回避することができます(MS Access2016以降)。 MS Accessのオプションより、「大きい数値(BigInt)データ型をサポート」にチェックを入れます。 設定後、リンクテーブルを一度閉じて、リンクの更新を行います。 #ODBC #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 8.7K
記事 Hiroshi Sato · 2021年12月21日 1m read 監査ログをプログラムで出力(ユーザやイベント指定など)する方法 これは、InterSystems FAQサイトの記事です。 監査ログをプログラミングで出力するために、監査ログの一覧を取得する%SYS.Audit クラスのListクエリを利用することができます。 サンプルコードは以下のようになります。 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 168