記事 Hiroshi Sato · 12月 26, 2023 7m read

それでは、今回はより具体的にReact開発方法について解説します。
ショップデモのリポジトリの配下にreactというディレクトリがあります。

この下にReactのコードがあります。

ここのreact-setup.mdに記載されている通り、前準備としてreactのテンプレートを作ります。

npx create-react-app shopdemo --template typescript

 

あとはこのReactプロジェクトを動かすためのライブラリのインストールを行います。

詳細は、react-setup.mdに書いてあります。

まず3つのディレクトリがあって、これは絶対こうしなければならないというものでもないのですが、基本的なお作法として用意するのが一般的なようです。

  • public
    • ここにはindex.htmlだけ置くのが一般的なようです。
    • テンプレートが自動生成するものでも良いのですが、Bootstrapを使用する場合は、テンプレートのindex.htmlにそのライブラリのロードを付け加えています。
  • components
    • ここに自分で開発するreactコンポーネントを配置します。
  • hooks
    • hookを用意する場合は、ここに配置します。 ​​​​

ここでは、まずログインをするためのユーザー認証を行うコンポーネントの処理について説明します。

Login.

0
0 318
記事 Hiroshi Sato · 12月 26, 2023 4m read

CSPを使って作成したアプリケーションをReactを使用して書き換える2回目の記事です。

前回の記事で紹介したショップデモの書き換えについてもう少し詳しく説明します。

まずReactについて、インターネット上に様々な情報が提供されていますので、それらを利用しながら学習するということも可能だとは思いますが、一方で学習時間を短縮するには、やはりReactについて説明した本を一通り読む方が速いのではないかと思います。

実際Reactに関する本はたくさんあるので、その中から自分に合いそうなものを選ぶのが良いかと思います。

 

ちなみに参考までに私が学習に使ったものは、以下です。

  • React実践の教科書
    • この本はReactの基本を習得するのに非常に役立ちました。
  • React開発 現場の教科書
    • こちらは、少し高度な内容になっていて、単にReactの使い方を教えるというより、Reactの様なフレームワークが必要である背景とか、現在のWebアプリケーション開発に必要なデザインやアプローチに踏み込んだ内容になっています。


詳細は、本を読んでいただくとして、ここでは私の経験上のReact学習のポイントについて、いくつか列挙したいと思います。

0
0 214
記事 Hiroshi Sato · 11月 13, 2023 2m read

CSPは非推奨機能となり、今後の新規アプリケーションの開発には使用しないことが推奨されています。

代わりに昨今のウェブアプリケーション開発に広く利用されているモダンなフレームワークの使用が推奨されています。

Webアプリケーション開発用のJava scriptフレームワークはたくさんあり、そのどれを選択するかは開発者の好みの問題です。

その中で比較的人気の高いReactを使って、CSPアプリケーションを書き換えた例について紹介します。
ちなみにCSPは機能的には2つの側面があり、今回非推奨となったのは、HTMLをサーバー側で生成するための拡張機能を使ったプログラミングに関連する部分です(.cspファイルを使用したHTMLとサーバーサイドプログラミング、Javascriptプログラミングによる開発)。

HTTP通信のインフラの部分(リクエストオブジェクトやセッション管理など)は引き続きIRISの根幹を支える機能として残ります。

実際、現在のIRISのREST関連機能は、このインフラ上で実装されています。

さて、CSPで記述されたアプリケーションをJavascriptフレームワークを使ったアプリケーションに簡単にコンバートできたらいいなと思われるでしょうが、残念ながらそんなうれしい方法はありません。

1
1 344
記事 Hiroshi Sato · 10月 14, 2022 2m read

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)を比較することで大体理解できると思いますが、以下にその手順について説明します。

 

1. IRISの.Net Native API用のdllの参照設定を追加します。

 

Visual Studioのプロジェクト設定から参照の追加を選び、以下のファイルを追加してください。

 

c:\InterSystems\IRIS\dev\dotnet\bin\v4.6.2
InterSystems.Data.IRISClient.dll

 

2.

0
0 361
記事 Hiroshi Sato · 8月 28, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

実行ログデータなどトランザクション中にロールバックが発生しても前の状態に戻ってほしくないデータがあります。

それらのデータをロールバックされないデータベースIRISTEMPに配置することで上記の要件に対応できます。

一時グローバルと IRISTEMP データベース

ロールバックさせたくないテーブルの実体をこのデータベースにマッピングすることでロールバック後に情報を残すことができます。

ただし、このデータベースはIRIS再起動で内容がクリアされますので、永続的に保持したい場合には、いずれかのタイミング(ロールバック後等)で永続テーブルにコピーを行う必要があります。

また、これとは別に、トランザクション対象外としたいテーブル操作の前にプロセスのジャーナル記録を停止し、操作完了後にジャーナル記録を再開することで、その操作をトランザクション対象外にすることもできます。

ただしこの方法は、ミラーリングをお使いいただく際にはご使用いただけません。

%NOJRN を使用したプロセス・レベルでのジャーナリングの管理

デベロッパーコミュニティの記事

0
0 350
記事 Hiroshi Sato · 8月 22, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

正規表現を使用する$Locate()関数がご使用いただけます。

正規表現の使用方法

使用方法の例は以下の様になります。

USER>write str
あいうえおかきくけこABC123456さしすせそ 
USER>write $locate(str,"[A-Za-z]{3}[0-9]{6}",,,val)
11 
USER>write val
ABC123
0
0 247
記事 Hiroshi Sato · 8月 8, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

TCP アダプタを使用するビジネスホストの [接続中を維持(StayConnected)]と[プールサイズ(PoolSize)]のデフォルト設定値は以下の通りです。

 

StayConnected = -1(常時接続タイムアウト無し)
PoolSize = 1

 

ネットワークの問題でビジネスホストへの接続が切断された場合に、プロダクション側では切断されたことを検知できないため新しい接続を受け付けません。

またこの状況の時、イベントログにも記録されません。

StayConnected が デフォルト値(-1)の場合、接続がタイムアウトしないため新しい接続を受け付けるためには、ビジネスホストを再起動する必要があります。

このような状況を回避するためには、StayConnected を 0 以上の値に設定することを推奨します。

例えば300(秒)に設定した場合、TCP ビジネスホストは 300 秒以上新たなメッセージを受信しなかった場合に、自動的に接続を切断して再接続できます。

処理量の多いシステムの場合には、通常 StayConnected の値をさらに小さな値、例えば 5(秒)に設定します。

0
0 176
記事 Hiroshi Sato · 8月 8, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

コンソールログに任意のメッセージを書き込む方法として%SYS.System クラスの WriteToConsoleLog メソッドを使用することができます。

以下に例を示します。 

%SYS>write ##class(%SYS.System).WriteToConsoleLog("xxxxx log message",0,0)
1


WriteToConsoleLogメソッドに指定できるパラメータの詳細は、以下のドキュメントをご参照下さい。

 

クラスリファレンス(%SYS.System)【IRIS】

クラスリファレンス(%SYS.System)

0
0 180
記事 Hiroshi Sato · 8月 1, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

残念ながら良い方法はありません。

もし処理の流れとして突然処理を中断されると不都合がある場合には、OnunloadHandler内でalertメソッドにより、Xボタンを押さないように注意を促すようなメッセージを出す方法が考えられます。

一般的には、ユーザ都合で処理中断されてもサーバ側処理内でデータの整合性等に不都合が発生しない様にアプリケーションの実装を行う必要があります。

ページのアンロード時に呼び出されるOnunloadHandler内でサーバ・メソッドを呼び出す方法は様々な問題があるため、使用することはお勧めしません。

0
0 191
記事 Hiroshi Sato · 7月 25, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

ObjectScript言語は、Java言語等がサポートしている型キャストをサポートしていません。

ただし、メソッドのキャストはサポートしています。

詳細は以下ドキュメントページをご参照ください。


メソッドのキャスト【IRIS】
メソッドのキャスト

InterSystems ObjectScript言語はJava言語や.NetのC#言語のような静的型付き言語とは異なり、動的型付き言語に分類される言語になります。

従って型の解釈は実行時に行われ、宣言時に型を合わせるという必要性がないため型キャストのような仕組みを用意していません。

0
0 229
記事 Hiroshi Sato · 7月 25, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

ミラーリングが同期の対象とするのはデータベースファイルのみです。

アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、

  1. NASなどを導入して共有ディスク上にそれらのファイルを配置する方法
  2. または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法

などの方法が考えられます。

また、2の方法ではWindows上ではRoboCopy、Linuxの場合にはrsyncという同期ソフトを使った実例があります。

0
0 191
記事 Hiroshi Sato · 7月 20, 2022 2m read

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の場合

$ iris list IRIS > iris.log
$ cat iris.log

Configuration 'IRIS'   (default)

directory:    /Applications/iris

versionid:    2021.2.0.650.0

datadir:      /Applications/iris

conf file:    iris.
0
0 179
記事 Hiroshi Sato · 7月 20, 2022 2m read

タスク成功時・失敗時、それぞれ通知メールを送信することができます。

そのためには事前にターミナルからTASKMGRルーチン を実行して、メールサーバを登録する必要があります。

> zn "%SYS"
> do ^TASKMGR

1) タスク作成
2) タスク編集
3) タスク一覧
4) タスク削除
5) タスク一時停止
6) タスク再開
7) タスク実行
8) タスクリポート
9) タスクマネージャオプション
10) 終了 


 

そして、メニューから9) タスクマネージャーオプションを選んで 

オプション?9
 
1) タスクマネージャ情報
2) タスクマネージャを開始する
3) タスクマネージャ一時停止
4) タスクマネージャ再開
5) タスクマネージャ履歴
6) メール設定定義
7) 終了


 次に6) メール設定定義を選びます。
 

オプション?6
 
1) メールサーバ定義
2) サーバポート定義
3) 返信先定義
4) 送信者定義
5) タイムゾーン
6) 認証ユーザ定義
7) SSL 構成を定義
8) 終了


そこで以下2点を最低限設定します。
 

1) メールサーバ定義 (SMTPサーバ名)  例: xxxxxx.xxxxx.com

4) 送信者定義 (通知メールのFROMアドレス) 例: m123456@gmail.

0
0 830
記事 Hiroshi Sato · 7月 11, 2022 2m read

iris コマンドを使用することで実行できます。
iris コマンド(iris.exe)は、<インストールディレクトリ>\bin にインストールされています。 書式:

iris run インスタンス名 tag^routine([parameter-list]) ネームスペース名
iris run インスタンス名 ##CLASS(package.class).method([parameter-list]) ネームスペース名

インスタンス名は、管理ポータル(システム管理ポータル)の右上にある [インスタンス:] に表示されている文字列です。


実行する環境に応じて一部の文字 ^ や " をエスケープする必要があります。

Windowsの場合は、以下のようなエスケープが必要となります。

 

 

 

例: USERネームスペースで do info^test(123,"abc") を実行します。

c:\InterSystems\IRIS\bin>iris terminal IRIS info^^test(123,\"abc\") USER

 

例: USERネームスペースで do ##class(Test.Class1).test(123,"abc") を実行します。

c:\InterSystems\IRIS\bin>iris run IRIS ##class(Test.Class1).
0
0 735
記事 Hiroshi Sato · 7月 11, 2022 2m read

CPU:サポート対象OSが問題なく動作するもの
以下のページをご参考ください。

 サポート対象プラットフォーム


ディスク容量:アプリケーションの要件を除外した場合、 IRISをインストールするためには、最低1.5GB以上の空き容量が必要です。
 

ストレージの計画

 

 実際に必要となる容量は、インストーラでセットアップタイプで "カスタム(Custom)"

を選択すると、インストールコンポーネント毎にご確認いただけます。


メモリ:推奨メモリー値は、アプリケーションや物理メモリサイズによるため

一概には言えませんが、IRISの全プロセスで使用するメモリサイズは以下になります。


①プロセスパーティション * ⑤プロセス数

 +

②データベースキャッシュ

 +

③ルーチンキャッシュ

 +

④一般ヒープメモリ


計算式でのこれらのパラメータは、業務アプリケーションの特性により異なってきます。


以前に導入実績のある業務アプリケーションの場合、既存システムでどの様に設定されたかも参考にしてください。

 

 ①プロセスパーティション(プロセスあたりの最大メモリ)

   管理ポータルで設定します。既定値は 262,144(KB)です。

0
0 812
記事 Hiroshi Sato · 7月 11, 2022 1m read

IRISがc:\InterSystems\IRISにインストールされているとします。
(1) a.py を C:\InterSystems\IRIS\lib\python に置きます。

a.py
 

def test():  
  print('Hello World!')

 

(2) それを IRISのクラスから実行します。
 

ClassMethod xx() [ Language = python ]
{
    import a
    a.test()
}

 

USER>do ##class(User.test).xx()
Hello World!

 

もし、a.py を別のディレクトリ C:\temp に置きたい場合は、C:\temp\ をPythonのPATHに指定する必要があります。


以下の方法があります。

 

(A)  管理ポータル>システム管理>構成>追加設定>メモリ詳細>PythonPath

の値に C:\tempを設定し、a.pyをそのディレクトリに置き、 IRISを再起動します。
 

ClassMethod xx() [ Language = python ]
{
   import a
   a.test()
}
0
0 663
記事 Hiroshi Sato · 6月 1, 2022 3m read

Cachéでは、今後の新しいOSのサポート、例えばWindows 11やWindows 2022のサポートは行われないことになりました。

いよいよ新しいサーバハードウェアを導入するとCachéが使えなくなる可能性が高くなってきました。

皆さんIRISへの移行をお早目にご検討ください。

IRISへの移行の際に障害となるものの1つがVisM.OCXを利用したアプリケーションの移行です。

IRISでもこの機能は制限付きで利用可能です。

しかし、そのためには少々面倒な手続きが必要です。

(この手続きについてはインターシステムズにお問い合わせください)

しかもこの手続きも暫定処置で将来なくなる可能性もゼロではありません。

ところでなんでそんな面倒くさい手続きが必要なのと感じた人もいると思います。

その理由は、

VisM.OCXがマイクロソフトの非常に古い技術を利用していて、開発元のマイクロソフトもそれを全くサポートしていませんし、セキュリティ脆弱性への対応等も全く行われていません。

そんな技術なんで、インターシステムズも技術サポートするのが困難です。

一方で、世の中、セキュリティに関しては増々厳しい対応が求められてきています。

そのためインターシステムズもセキュリティ対策には十分注意して対応しており、セキュリティの脆弱性が見つかったらできるだけ速やかに対応しています。

0
0 451
記事 Hiroshi Sato · 3月 27, 2022 2m read

これはInterSystems FAQ サイトの記事です。

  • まず予め Visual Studioを使用して、呼び出したい内容のクラスライブラリを作成します。
  • そのプロジェクトをコンパイルし、DLLを作成します。
  • 管理ポータルでオブジェクトゲートウェイを作成します。   システム管理 > 構成 > 接続性 > オブジェクトゲートウェイ ゲートウェイ名 : testGateway サーバ名 / IPアドレス : 127.0.0.1 ポート : 55000 (後はデフォルト)  
  • testGateway を開始します。


※管理ポータルから、もしくはコマンドから開始できます。 

do ##class(%Net.Remote.Service).StartGateway(gateway.Name)
  •   以下のいずれかの方法でDLLを呼び出すプロキシクラスを作成します。

       a. コマンドで作成する場合 

     set dllPath="C:\temp\TestDll.dll
     do ##class(%Net.Remote.Gateway).%ExpressImport(dllPath, 55000, "127.0.0.1")

       b. スタジオで作成する場合


 [ツール] - [アドイン] - [.

0
0 466
記事 Hiroshi Sato · 3月 23, 2022 2m read

もし現在ご使用のデータベース技術で壁に突き当たっていると感じておられるならば、是非InterSystems IRIS Data Platformへの移行をご検討ください。

(以下IRIS)

IRISに移行するに際して、現行のプログラム資産を全て書き換える必要はありません。

IRISに移行する際には、以下の手順で進めることを推奨しております。

アプリケーションコードをそのまま流用し、動作させるために、現在のデータベースからIRISへの移行を行います。

既存のRDBMSのデータ定義(DDL文で記述されたもの)をIRISに取り込むことで、リレーショナルとオブジェクトの両モデルからアクセスが可能となるため、必要に応じてオブジェクト・アクセスが妥当である処理に対しては、アプリケーションプログラムの修正など、対応策が選択できます。

さらにXMLやJSONなどのドキュメント形式のデータの取り扱いも容易ですので、RestFullなアプリケーション構築にも向いています。

また、IRISには習得が容易でデータベースエンジンと一体化したスクリプト言語「InterSystems ObjectScript」が用意されているので、処理の一部をサーバ側ロジックとしてストアドプロシージャ化することによってデータベース処理を効率化するなど、様々な対応策を検討することができます。

バージョン2021.

0
0 221
記事 Hiroshi Sato · 3月 23, 2022 2m read

質問

現在使っているリレーショナルデータベースからInterSystems IRIS Data Platformに移行することは可能ですか?

答え

InterSystems IRIS Data Platform(以下IRISと表記)は、SQLをサポートしていますので、多くの場合リレーショナルデータベースで構築されたアプリケーションは、大部分のコードを変更することなくIRISに移行することができます。

ただしSQLの各実装毎にSQL標準を拡張した仕様等があり、それにIRISが全て対応していませんので、コードの書き換えが必要なケースもあります。

また各実装が独自に用意した標準でない通信系API等にも対応していませんので、その場合にはJDBC、ODBCなどの標準的な通信APIに置き換える必要があり、かなり書き換えが必要になります。
(使用されているSQL文等はそのまま流用可能な場合が多いです。)

さらにそのままコードを移行できるケースであっても動作保証はできませんので、必ず動作確認のためのテスト作業は必要になります。

以上のことから他データベースシステムからIRISシステムへの移行には相応の移行コストがかかるため、移行は必ずしも容易とは言えませんが、それでも移行を決断されたお客様はたくさんおられます。

そしてほとんどのお客様は移行したシステムの性能、開発生産性、保守性、運用の容易さ等に満足されております。

0
0 148
記事 Hiroshi Sato · 3月 23, 2022 1m read

これは InterSystems FAQ サイトの記事です。
 

以下のコードは、https://www.intersystems.com/assets/intersystems-logo.png をダウンロードし、c:\temp\test.pngとしてファイルを保存する例になります。

以下のコードを動作させるためには、SSLTESTという名前のSSL定義を作成しておく必要があります。

 

ClassMethod download() As %Status
{
    Set sc = $$$OK
    Set httprequest=##class(%Net.HttpRequest).%New()
    set httprequest.Port = 443
    set httprequest.Https = 1
    set httprequest.SSLConfiguration = "SSLTEST"
    Set httprequest.Server="www.intersystems.com"
    Do httprequest.Get("/assets/intersystems-logo.png")
    Set httpresponse=httprequest.HttpResponse
    Set file=##class(%File).
0
0 209
記事 Hiroshi Sato · 12月 28, 2021 2m read

これは InterSystems FAQ サイトの記事です。
 

コンパイル時のフラグや修飾子の記号と意味については、以下ドキュメントをご参照ください。


コンパイルフラグについて【IRIS】

コンパイルフラグについて

 

なお、開発環境のスタジオやVisual Studio Codeでは、開発環境の設定画面でフラグを変更できます。

  • スタジオは、[ツール] > [オプション] > [コンパイラ] > [フラグと最適化]


     

     
  • VSCodeは、[View] > [Command Palette...] 

 


ターミナルでコンパイルを実行するときは $system.OBJ.CompileAll() などのシステムユーティリティが利用できます。
コンパイルフラグを引数に指定しない場合、デフォルトのコンパイルフラグが利用されます。デフォルトのフラグは $system.OBJ.ShowFlags() で確認できます。

USER>do $system.OBJ.ShowFlags()
    b - Include sub classes.
    c - Compile.
0
0 889
記事 Hiroshi Sato · 12月 28, 2021 1m read

これは、InterSystems FAQサイトの記事です。
 

データ項目の値が”#Deleted"と表示される場合、MS Accessの設定でこの問題を回避することができます(MS Access2016以降)。

MS Accessのオプションより、「大きい数値(BigInt)データ型をサポート」にチェックを入れます。

 

     

設定後、リンクテーブルを一度閉じて、リンクの更新を行います。

0
0 9754
記事 Hiroshi Sato · 12月 21, 2021 1m read

これは、InterSystems FAQサイトの記事です。
 

監査ログをプログラミングで出力するために、監査ログの一覧を取得する%SYS.Audit クラスのListクエリを利用することができます。


サンプルコードは以下のようになります。

 Set statement=##class(%SQL.Statement).%New()  
 Set status=statement.%PrepareClassQuery("%SYS.Audit","List")
 Set rs=statement.%Execute()  
 Set tab = $char(9)
 While rs.%Next() {    
   Write rs.%Get("TimeStamp")_tab_rs.%Get("Event")_tab_rs.%Get("Username"),!      
}
0
0 273
記事 Hiroshi Sato · 12月 20, 2021 1m read

これは、InterSystems FAQサイトの記事です。
 

CSPアプリケーションでは、リクエスト処理時間がサーバー応答タイムアウト値(CSPゲートウェイ管理ページで設定、既定値60 sec)を経過すると、CSPゲートウェイからクライアントブラウザにタイムアウトを通知し、処理を続けているデータプラットフォームサーバプロセスにエラーを発生させます。

 

エラーが発生している処理を確認して頂き、処理遅延の改善、例えばタイムアウトが発生しないように処理内容を見直して応答時間を短くすることや必要に応じてサーバ応答タイムアウト値を大きくすることで対処可能です。

0
0 511
記事 Hiroshi Sato · 11月 29, 2021 2m read

これは、InterSystems FAQサイトの記事です。
 

FTPサーバから、アップロード/ダウンロードする方法は以下の通りです。

1. FTPサーバにイメージファイルをアップロードする

 set tmpfile="c:\temp\test.jpg"
 set ftp=##class(%Net.FtpSession).%New() 
 // ftp サーバへ接続する
 do ftp.Connect("","<ユーザ名>","<パスワード>")
 // 転送モードをBINARYに設定
 do ftp.Binary()
 // アップロードするディレクトリに移動
 do ftp.SetDirectory("/temp/upload")
 // アップロードするファイルのストリームを用意   
 set file=##class(%File).%New(tmpfile)
 do file.Open("UK\BIN\")
 // ファイルをアップロード
 // 第1引数: アップロード先に作成するファイル名
 // 第2引数: アップロードするファイル・ストリーム
 do ftp.Store("test.jpg",file)
 // ftp サーバからログアウト
 do ftp.Logout()
 // ファイルを閉じる
 do file.
0
0 287
記事 Hiroshi Sato · 11月 24, 2021 1m read

これは InterSystems FAQ サイトの記事です。
 

InterSystems製品開始時に、OSの実行ファイルやコマンド、InterSystems製品内に作成したプログラムを実行したい場合は SYSTEM^%ZSTART ルーチンに処理を記述します。

(%ZSTARTルーチンは%SYSネームスペースで作成します)

 

SYSTEM^%ZSTART に記述する処理は、事前にあらゆる条件下でうまく動作することを確認してください。

 

^%ZSTART ルーチンの記述ミスや、記述は正しくとも起動時にコマンドが応答を返さなかったり処理でエラーが起こった場合、InterSystems製品が起動できなくなることがあります。

 

詳しくは、以下ドキュメントをご参照ください。


%ZSTART、%ZSTOPルーチンの記述について【IRIS】
%ZSTART、%ZSTOPルーチンの記述について

0
1 296
記事 Hiroshi Sato · 11月 11, 2021 3m read

これは InterSystems FAQ サイトの記事です。
 

設定内容によって、方法が異なります。
 

システム構成について
管理ポータルの [システム管理] > [構成]

以下の設定については(※1)、パラメータファイル(InterSystems IRISは iris.cpf、Caché/Ensemble/HealthShareは cache.cpf) に格納されます。 

このファイルはテキストファイルとなっていますのでこのファイルの一部を他のシステムにコピーして反映させることが可能です。 
ただし、ディレクトリ名など各システム固有の情報が多く含まれるため、そのままファイル全体をコピーしても設定内容を反映させることはできません。 
(※1) 【Caché/Ensemble2010.2以前】 [システム管理ポータル] > [構成] (システム構成)  メニュー以下の設定が対象です。 
パラメータ・ファイルの各項目については、以下ドキュメントをご参照ください。 
InterSystems パラメータ・ファイル・リファレンスについて【IRIS】 Caché パラメータ・ファイル・リファレンスについて      

 

セキュリティについて
^SECURITY ユーティリティを使用してエクスポート/インポートすることが可能です。 
ターミナルを起動し、%SYSネームスペースで以下のコマンドを実行してください。

0
0 601
記事 Hiroshi Sato · 11月 11, 2021 1m read

これは InterSystems FAQ サイトの記事です。
 

タイムアウトを無効にするためには、DSNの設定でクエリタイムアウト無効に設定します。

 

Windowsコントロールパネル > [管理ツール] > [データソース(ODBC)] > [システムDSN]の構成


で クエリタイムアウト無効 にチェックを入れますと、タイムアウトは無効になります。

 

アプリケーション側で変更する場合は、ODBC APIレベルで設定することが可能です。


ODBCのSQLSetStmtAttr関数をコールする際に、SQL_ATTR_QUERY_TIMEOUT属性を設定してから、データソースに接続してください。

0
0 11875
記事 Hiroshi Sato · 11月 11, 2021 1m read

これは InterSystems FAQ サイトの記事です。
 

バックアップ先に、共有フォルダを指定することは可能ですが、推奨しません。

バックアップの最終フェーズのDBアクセスを禁止する箇所で万一ネットワークエラー等で、バックアップがハングアップすることがあれば、システム全体に影響が及ぶリスクがあります。

0
0 171