記事 Hiroshi Sato · 2022年10月14日 2m read CachéでCache Directエミュレータを使っているアプリケーションをIRISのCache Directエミュレータに書き換える方法 IRISでは.Net Binding機能が非推奨になったため、VisM.OCXの置き換えのために用意していたCaché版Cache Directエミュレータ(.Net Binding機能を使用していたため)の使用も非推奨となりました。そこでIRISのNative API機能を使用して書き換えたものを作成し、OpenExchange(以下のFAQトピックを参照してください)に登録しています。 FAQのトピック Caché版Cache Directエミュレータを使っているアプリケーションをIRISに移行するためには、IRIS用のCache Directエミュレータに置き換えて、アプリケーションのコードをいくつか書き換える必要があります。 内容は、それぞれのプロジェクトに含まれるコンソールアプリケーションサンプル(consoleApp.cs)を比較することで大体理解できると思いますが、以下にその手順について説明します。 #.NET #ヒントとコツ #Caché #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 1 0 0 97
記事 Hiroshi Sato · 2022年8月28日 1m read 特定のテーブルデータのみをロールバックしないようにする これは InterSystems FAQ サイトの記事です。 実行ログデータなどトランザクション中にロールバックが発生しても前の状態に戻ってほしくないデータがあります。 それらのデータをロールバックされないデータベースIRISTEMPに配置することで上記の要件に対応できます。 一時グローバルと IRISTEMP データベース ロールバックさせたくないテーブルの実体をこのデータベースにマッピングすることでロールバック後に情報を残すことができます。 ただし、このデータベースはIRIS再起動で内容がクリアされますので、永続的に保持したい場合には、いずれかのタイミング(ロールバック後等)で永続テーブルにコピーを行う必要があります。 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 57
記事 Hiroshi Sato · 2022年8月22日 1m read 正規表現を使ってパターンに一致した部分文字列を取得する方法 これは InterSystems FAQ サイトの記事です。 正規表現を使用する$Locate()関数がご使用いただけます。 正規表現の使用方法 使用方法の例は以下の様になります。 USER>write strあいうえおかきくけこABC123456さしすせそ USER>write $locate(str,"[A-Za-z]{3}[0-9]{6}",,,val)11 USER>write valABC123456 USER> #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 51
記事 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 62
記事 Hiroshi Sato · 2022年8月8日 1m read コンソールログにメッセージを書く方法 これは InterSystems FAQ サイトの記事です。 コンソールログに任意のメッセージを書き込む方法として%SYS.System クラスの WriteToConsoleLog メソッドを使用することができます。 以下に例を示します。 %SYS>write ##class(%SYS.System).WriteToConsoleLog("xxxxx log message",0,0)1 WriteToConsoleLogメソッドに指定できるパラメータの詳細は、以下のドキュメントをご参照下さい。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 51
記事 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 49
記事 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 60
記事 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 60
記事 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 63
記事 Hiroshi Sato · 2022年7月20日 2m read タスクの起動でエラーが発生した時にメールで通知する方法 タスク成功時・失敗時、それぞれ通知メールを送信することができます。 そのためには事前にターミナルからTASKMGRルーチン を実行して、メールサーバを登録する必要があります。 > zn "%SYS" > do ^TASKMGR1) タスク作成2) タスク編集3) タスク一覧4) タスク削除5) タスク一時停止6) タスク再開7) タスク実行8) タスクリポート9) タスクマネージャオプション10) 終了 そして、メニューから9) タスクマネージャーオプションを選んで #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 92