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

%SYS.Namespace クラスの List クエリで取得することができます。

次のようなルーチンを作成し、ターミナルで実行してください。


1. サンプルの作成

1 0
0 243
記事
· 2023年6月27日 13m read
REST の設計と開発

はじめに

今日の相互運用性分野に従事する多くの人にとって、REST は最高峰にあります。 REST API 開発用のツールとアプローチが溢れかえる中、コードを書き始める前に、どのツールを選び、何を計画する必要があるでしょうか? この記事では、堅牢性、適応性、および一貫性に優れた REST API を構築できるようにする設計パターンと考慮事項を焦点としています。 CORS サポートと認証管理の課題に他する実行可能なアプローチについて、REST API 開発の全段階に適用できる様々なヒントとテクニック、最適なツールを織り交ぜながら説明します。 InterSystems IRIS Data Platform で利用できるオープンソース REST API と複雑化し続ける API の課題にどのように取り組むかについてお読みください。 これは、同じトピックに関する最近のウェビナーを記事にしたものです。

0 0
1 241

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

ファイルサイズを取得する専用メソッドはありませんが、%Net.FtpSession クラスの sendCommand() メソッドを通してFTPのSIZEコマンドを呼び出し、サイズを取得できます。

簡単な利用例をご紹介します。

まず、以下の様なクラスを定義します。

0 0
0 240

アプリケーションがデプロイされ、すべてが問題なく動作しています。 素晴らしいですね! しかし、その後突然電話が鳴り止まなくなりました。アプリケーションが時々「遅くなる」というユーザーからの苦情の電話です。 これは一体どういうことなのでしょうか? なぜ時々遅くなるのでしょうか? このような速度低下を検出し、解決するにはどのようなツールと統計情報に注目すべきなのでしょうか? お使いのシステムのインフラはユーザーの負荷に対応できていますか? 本番環境を調べる前に、どのようなインフラ設計上の問題を問うべきなのでしょうか? 新しいハードウェアのキャパシティプランニングを、必要以上の設備投資を行うことなく自信を持って行うにはどうすればよいのでしょうか? どうすれば電話がかかってこなくなるのでしょうか? そもそも電話がかかってこないようにするには、どうすればよかったのでしょうか?

0 0
0 240

開発者の皆さん、こんにちは!

VSCodeのObjectScriptエクステンションを利用してInterSystems製品に接続するときに「プライベートWebサーバ (*1)」ではなく、「Webサーバ(IISやApache)」を利用される場合、接続時に使用するREST用パスが通るようにWebサーバに仮想パスを追加する必要があります。

(*1) プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです)

対象バージョン:2023.1以下のInterSystems製品

追加が必要なパス: /api

0 0
0 239

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

システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。

^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。

なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。

詳細については、下記ドキュメントもご参照ください。

0 0
0 238

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

$ZTIMESTAMPはUTC形式で日付時刻を返すため、ローカルのタイムゾーンに変更するためには以下システムオブジェクトを利用します。

$SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP)


上記出力結果は ddddd,sssss.fff の形式で出力されます。

ddddd:$HOROLOGの日付と同じ形式
 sssss:現在の日付の午前 0 時からの経過秒数を示す整数
 fff :秒の小数部を示す可変桁数

※ $HOROLOGに似ていますが、$HOROLOGには秒の小数部分は含まれません。

1 0
0 236

この記事は Caché データベースの内部構造を説明したこちらの記事の続編です。 そちらの記事では、様々なブロックタイプ、それぞれのつながりやグローバルとの関係について説明しました。 純粋に理論を述べた記事でした。 ブロックツリーを視覚化するのに役立つプロジェクトを作成しましたので、この記事ではその仕組みを詳しく説明します。

0 0
0 235

InterSystems IRISを初めて使用し始める際には、最低限のセキュリティレベルでのみシステムをインストールするのが通例です。 パスワードを入力する回数が少なくて済むため、初めて作業を始めるときに、開発サービスやWebアプリケーションの操作がより簡単になるからです。 また、開発済みのプロジェクトまたはソリューションをデプロイする際には、最小限のセキュリティを適用している方が便利な場合があります。 それでも、プロジェクトを開発環境から非常に敵対的な可能性のあるインターネット環境に移行する時が来れば、本番環境にデプロイされる前に、最大限のセキュリティ設定(つまり、完全なロックダウン状態)でテストしなければなりません。 これがこの記事の論点です。
InterSystems Caché、Ensemble、およびIRISにおけるDBMSセキュリティ問題をさらに包括的に説明した記事については、私の別の記事、「Recommendations on installing the InterSystems Caché DBMS for a production environment」(本番環境向けにInterSystems Caché DBMS をインストールするための推奨事項)をご覧ください。 InterSystems IRISのセキュリティシステムは、さまざまなカテゴリ(ユーザー、サービス、リソース、特権、およびアプリケーション)に異なるセキュリティ設定を適用する概念に基づいています。
ユーザーにはロールを割り当てることができます。 ユーザーとロールには、データベース、サービス、およびアプリケーションといったリソースに対し、さまざまな読み取り、書き込み、および使用の権限を付与することができます。 ユーザーとロールには、データベースのSQLテーブルに対するSQL特権も与えられます。

0 0
0 234

良識のある人にはルールなんていらない。

ドクター

日付と時間のマスターになるのは簡単なことではありません。いつも問題になる上、どのようなプログラミング言語でも混乱することがあります。そこでこのタスクが可能な限り単純になるように、分かりやすく説明していくつかのヒントをご紹介しましょう。

さぁ、ターディスに乗り込みましょう。あなたを時間の支配者にして差し上げます。

ターディス

1 1
0 213

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 0
0 233

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


管理ポータル:システムオペレーション > データベース にあるオプションボタンラジオボタン)「空き容量ビュー」で表示される内容は、システムクラス SYS.Database のFreeSpace クエリで取得可能です。

次のようなコードでクエリを実行します。

例:
(%SYSネームスペースにて作成、実行します)

0 0
0 233

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

InterSystemsでは、既存のお客様および見込みのお客様と実施した他DBMS製品との比較を行った様々なベンチマーク結果を持っています。

しかし、それらの結果に関して、ほとんどのRDBMSベンダのライセンス条項に当該RDBMSベンダの承諾なしにベンチマーク結果を公表してはならないという条項があるため、現実問題として一般的な公表は、難しい状況です。

一方、TPC等の公共の機関等がベンチマーク条件を策定、公開しているベンチマークに関しては、必要な実施コストに対して得られるものが少ないと考えており、過去にも実施しておりませんし、将来も実施する予定はありません。

InterSystemsは、TPCの様な現実のシナリオからかけ離れたベンチマークを実施するのではなく、実際のアプリケーションを模したベンチマークシナリオを構築し、それに基づき、各ハードウェアベンダ、パートナ企業、エンドユーザとの協力の基、ベンチマークを実施しております。

0 0
0 233

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

引数名の後ろに ... をつけることで可変の引数を渡すことができます。

ObjectScript では、配列を使って任意の数の引数を渡すことができます。

例文は以下の通りです。
例文では、メソッド実行後に確認しやすいように、グローバル変数(=データベースに格納される変数)に引数の情報を設定しています。

Class TEST.ARGTEST1 Extends %RegisteredObject
{
ClassMethod NewMethod1(Arg... As %String) As %Boolean
{
 kill ^a
 merge ^a = Arg
}
}

ターミナルで実行した結果は以下の通りです。

0 0
0 232

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

$IsObject()を使用して判別できます。

調べたい変数をvとすると、

$IsObject(v)=1 // vはOREF
$IsObject(v)=0 // vはOREFではない
$IsObject(v)=-1 // vはOREFだが、有効なオブジェクトを指していない

となります。

vが未定義の場合は、$IsObject(v)はUNDEFINEDエラーとなりますので、ご注意ください。

UNDEFINEDエラーを防止するには、次のように$Getを使用することをお勧めします。

$IsObject($Get(v))
0 0
0 231

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

ジャーナル切り替えのタスクが実行時にエラー(例:FILEFULL)となり、その原因となるエラーを解消後も一時停止(Suspend Leave)状態となっているのであれば、以下の操作により復旧可能です。

管理ポータル: [システムオペレーション] > [タスクマネージャ] > [タスクスケジュール表示] より、以下の操作を行います。

  1. ジャーナル切り替え(Switch Journal) "詳細" をクリック
  2. "一時停止" をクリック
  3. タスク実行が一時停止された場合にタスクを再スケジュールしますか? はい
  4. "すぐに実行する" をクリック
  5. "再開" をクリック
  6. "すぐに実行する"

タスク詳細にて "一時停止:"が空欄になり、"次回スケジュール時刻:" が再開後の次のスケジュール(例えば2021-04-17 00:00) になっていれば、復旧完了です。

0 0
0 228

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

揮発性テーブル(多数のINSERT、DELETEが行われるテーブル)では、ビットマップ・インデックス用ストレージは徐々に効率が低下する可能性があります。

例えば、以下の定義からなるデータが数千件あり、一定期間保持した後 TRUNCATE TABLE で一括削除を行うオペレーションが繰り返し行われているとします。

Class MyWork.MonthData Extends (%Persistent, %Populate)
{
/// 満足度
Property Satisfaction As %String(VALUELIST = ",満足,やや満足,やや不満,不満,");
/// 年齢
Property Age As %Integer(MAXVAL = 70, MINVAL = 20);
Index AgeIdx On Age [ Type = bitmap ];
}
0 0
0 228

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

TRY-CATCHで行うことが可能です。
以下のように行ってください。

 #dim ex As %Exception.AbstractException
 TRY {
    "<何かエラーを発生させる処理>"
  }
  CATCH ex {
     do ex.Log()
  }


^%ETNを使用する場合は、^%ETNを呼び出す際にBACKエントリ(BACK^%ETN)から呼び出してください。


あわせて、以下の関連記事も是非ご覧ください。

1 0
1 227

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

以下ドキュメントは、IRIS 最新バージョンと Caché/Ensemble2018.1 でサポートしているクラウドプラットフォームの一覧です。

※Amazon EC2 は、2010.2.0以降でサポートしています。
 Microsoft Azureは、2014.1.0以降でサポートしています。
 Google クラウドプラットフォームは、IRIS2018.1以降でサポートしています。

IRIS 最新バージョンサポートクラウドプラットフォーム

0 0
0 226

インターシステムズでは、お客様のニーズにお応えし、定期的に製品リリースのポリシーを変更しています。

今回新しくメンテナンスリリースの頻度を変更しました。これにより、大切なお客様やパートナーのみなさまが製品導入の計画をたてやすくなったり、機能改善の調整をしやすくなっていただければ幸いです。

本記事では、データプラットフォーム製品のリリース頻度を改めてお伝えするとともに、最新の変更点についてご案内いたします。

2 0
0 224

優れた執筆者は、題名で読者を引き込み、答えを記事のどこかに隠すべきだと考えられています。 だとすると、私は出来の悪い執筆者ということになってしまいます。私の自尊心は見知らぬインターネットユーザーの皆さんのご意見にかかっていますので、お手柔らかにお願いします。

0 0
0 224

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

ルーチン(*.mac)の場合

ソースプログラムのコンパイル後に生成される *.obj のみをエクスポート/インポートすることでソースの隠蔽化を実現できます。

コマンド実行例は、EX1Sample.mac と EX2Sample.mac のコンパイルで生成される EX1Sample.obj と EX2Sample.obj をエクスポート対象に指定し、第2引数のファイルにエクスポートしています。

別ネームスペースに移動したあと、エクスポートした XML ファイルを利用してインポートを実行しています。

1 0
0 223

Caché/Ensemble 時代からご使用のお客様にはなじみの機能だと思いますが、IRISには「システムがインスタンスのメッセージログ/messages.log(Cachéの場合は コンソールログ/cconsole.log) を監視し、ログ・レベル2(重大なエラー) 以上 のアラートを受け取るとメールを送信する」ログ・モニター機能があります。
この機能を使用すると、アラートログ (alerts.log)へのログ書き込み管理のほかに、メールを送信することもできます。

メール送信の設定は、^MONMGR ユーティリティを使用して簡単に行えます。

以下に、サンプルをご案内します。

0 0
0 222

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

ドキュメント上は明確に記述されていませんが、エクスポートの追加ボタンを押した時に表示されるファイルダイアログのファイル名にグローバル名 + .GBLと入力することでグローバルをエクスポートの対象にすることができます。
(例: ^aaaの場合、^aaa.gblと指定)

この機能はクラス、ルーチン等と一緒にグローバルデータを一括してエクスポート/インポートする際に、便利な機能ですが、XMLで表現されるため、データ容量は実データに比較し大きくなりますので、大量データを処理する場合には必要な容量に注意が必要です。

0 0
0 222
記事
· 2021年6月23日 10m read
InterSystems Cachéのマクロ

この記事では、InterSystems Cachéにおけるマクロについて説明します。 マクロは、コンパイル中に一連の命令に置き換えられるシンボリック名です。 マクロは、渡されたパラメーターとアクティブ化したシナリオに応じて、呼び出されるたびに一連の命令セットに「展開」されます。 これは、静的コードの場合もあれば、ObjectScriptを実行して得られる結果である場合もあります。 それでは、アプリケーションでマクロをどのように使用できるのかを見てみましょう。

0 0
0 221

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

%Net.FtpSession クラスを使用して FTP サーバから、アップロード/ダウンロードする方法をご紹介します。

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

0 0
0 220

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

永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。
グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。

例)

0 0
0 219