0 フォロワー · 496 投稿

  

InterSystems CachéはマルチモデルのDBMSおよびアプリケーションサーバーです

詳細はこちらをご覧ください

ドキュメント

記事 Toshihiko Minamoto · 6月 15, 2021 11m read

MonCaché — InterSystems Caché での MongoDB API 実装

免責事項:この記事は筆者の私見を反映したものであり、InterSystemsの公式見解とは関係ありません。

構想

プロジェクトの構想は、クライアント側のコードを変更せずに MongoDB の代わりに InterSystems Caché を使用できるように、ドキュメントを検索、保存、更新、および削除するための基本的な MongoDB(v2.4.9) API 機能を実装するところにあります。

動機

おそらく、MongoDB に基づくインターフェースを使って、データストレージに InterSystems Caché を使用すると、パフォーマンスが向上するのではないか。 このプロジェクトは、学士号を取得するための研究プロジェクトとして始まりました。

ダメなわけないよね?! ¯\(ツ)

制限

この研究プロジェクトを進める過程で、いくつかの簡略化が行われました。

0
0 147
記事 Mihoko Iijima · 6月 14, 2021 1m read

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

接続先クライアントのIPアドレス取得するには、以下の方法で %SYS.ProcessQuery クラスを使用します。

(a) 対象プロセス ID を指定して、ClientIPAddress プロパティ を参照します。

 Set Process=##CLASS(%SYS.ProcessQuery).%OpenId("8656")
 Write Process.ClientIPAddress

 

(b) 全てのプロセスの情報を知りたい場合は、必要な情報のみ取得する SQL クエリを作成し、クラス内で実行することができます。

例) SELECT * FROM %SYS.ProcessQuery で詳細情報を取得できます。

詳細は、以下ドキュメントをご参照ください。
%SYS.ProcessQueryについて【IRIS】
%SYS.ProcessQueryについて

0
0 156
記事 Megumi Kakechi · 6月 14, 2021 2m read

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

 <PROTECT> エラーを解消するには、システム全体のライブラリデータベース(※)の読み込み専用属性を外します。

※ InterSystems IRIS の場合は IRISLIB、Caché/Ensemble/HealthShare(Cachéベース) の場合は CACHELIB  

ルーチンのインポートが完了しましたら、読み込み専用に忘れずに戻すようにしてください。
 

【バージョン2013.1~】
[管理ポータル] > [システム管理] > [構成] > [システム構成] > [ローカルデータベース]
データベース名のリンクから「読み込み専用でマウント」のチェックを外します。
 

  

【バージョン2011.1~バージョン2012.2】
[管理ポータル] > [システム管理] > [構成] > [システム構成] > [ローカルデータベース]
該当データベースの[編集]から「読込専用?」を変更します。  

【バージョン2010.2以前】
[システム管理ポータル] > [構成] > [ローカルデータベース]
該当データベースの[編集]から「読込専用?」を変更します。 

0
0 252
記事 Toshihiko Minamoto · 6月 9, 2021 4m read

   GIS は Geographic Information System(地理情報システム)の略です。
  これは、Caché の典型的な分野ではありませんが、 データ量の多い環境に違いありません。

主要分野には、次の 3 つがあります。

  • ビジュアルフロントエンド:
       多数の商用およびオープンソース製品がカバーする成熟した分野です。
       ここには Caché は必要ありません。

  • GIS の数学:  
      JTS(Java Topology Suite)は、すべての要件を網羅した固定標準です。Java Gateway によって、または Caché Call Out Gateway
    を使ったこの標準ライブラリの C++ インカーネーションの C によって Caché にリンク付けることができます。
      これまでのところ、Caché による付加価値はありません。

  • すべての地理オブジェクトとその属性、特に、道路地図、高速道路、会社、個人宅、鉄道、人口統計データなどの地理座標を保持しているデータベース

0
0 155
記事 Mihoko Iijima · 6月 9, 2021 8m read

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

管理ポータルで設定できるメモリ関連の項目は、以下の通りです。
(項目としては他にもありますが、ここでは、ほとんど設定する必要のないものについては記載していません。)

管理ポータル [ホーム] > [システム管理] > [構成] > [システム構成] > [メモリと開始設定]

古いバージョンのメニューは以下の通りです。

【バージョン5.1~2010.x】
システム管理ポータル [ホーム] > [構成] > [メモリと開始設定] の設定内容
* データベースキャッシュ用メモリ
* ルーチンキャッシュ用メモリ 【バージョン2011.1.0~】
管理ポータル [ホーム] > [システム管理] > [構成] > [追加の設定] > [メモリ詳細設定]

【バージョン 5.1~2010.x】
システム管理ポータル [ホーム] > [構成] > [メモリ詳細設定] の設定内容
* 一般メモリヒープ【gmheap】
* ロックテーブル【locksiz】
* IJCバッファ【ijcbuff】
* IJCデバイス【ijcnum】※カテゴリ:IO
* 照合テーブル最大数【nlstab】

設定の詳細は以下の通りです。

2023/9/1更新 添付のPDFに古い記載がありましたので、本文内を最新情報に更新しています。添付ではなく本文をご参照ください。

0
0 488
記事 Toshihiko Minamoto · 6月 8, 2021 17m read

以前、WRCケースのエスカレーションを受けました。お客様は、Cachéに、rawDEFLATE圧縮/解凍機能が組み込まれているかを尋ねていました。

DEFLATEについて話すには、Zlibについても話す必要があります。Zlibは、90年代半ばに開発された無料の圧縮/解凍ライブラリで、、デファクトスタンダードとなっているからです。

Zlibは特定のDEFLATE圧縮/解凍アルゴリズムと、ラッパー(gzip、zlibなど)内でのカプセル化するという考えの下で動作します。
https://en.wikipedia.org/wiki/Zlib

Caché Object Script(COS)ではすでにGZIPがサポートされており、gzipファイルを使用するために、ファイルデバイスまたはtcpデバイス、またはStreamclassで/GZIP=1を使用できるようになっています。
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_propstream_gzip

0
0 979
記事 Mihoko Iijima · 7月 20, 2020 2m read

IRIS で REST サーバを作成する際に準備する REST ディスパッチクラスを手動で作成する方法を解説します。

関連ビデオで、OpenAPI 2.0 で定義したアプリケーションの仕様を利用する手順を使った API ファーストで作成するディスパッチクラスの解説ビデオもあります。

このビデオには、以下の関連ビデオがあります。

もくじ

最初~ 復習ビデオ/関連ビデオについて など

2:20~  作成するディスパッチクラスの内容

4:20~ 手動でRESTディスパッチクラスを作成する方法(手順説明)

5:07~ VSCode:クラス定義作成(手順説明)

 メモ:スタジオでの作成については、別のビデオでご説明しています。  

8:18~ ベースURLの設定(管理ポータルでの設定)説明

8:49~ HTTP要求、応答を操作する

10:50~ HTTP要求、応答の操作に便利なクラスパラメータ

13:22~ VSCodeでのクラス定義作成(実演)
     GET要求の実装

1
0 570
記事 Mihoko Iijima · 6月 4, 2021 3m read

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

ユーザーが作成したクラス定義は、クラス定義クラスの中に格納されます。

クラス定義一覧をプログラムから取得する方法として、「クラス定義クラス」を利用することができます。

メモ:クラス定義クラスとは、%Dictionary パッケージに含まれるクラス全般のことをさします。

以下サンプルコードでは、%Dictionary.ClassDefinitionQuery クラスSummary クエリを利用してクラス定義一覧を取得しています。

0
0 273
記事 Mihoko Iijima · 6月 1, 2021 6m read

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

InterSystems 製品を利用した REST/JSON の操作方法を、簡単なサンプルを利用して解説します。

サンプルでは、REST クライアント、HTML、ターミナルからデータ(JSON)を送信し、サーバ(InterSystems製品)で JSON 形式のデータを返す REST ディスパッチクラスを使った簡単な流れになっています。

サンプルは、https://github.com/Intersystems-jp/FAQ-REST-SimpleSample からダウンロードいただけます。

サンプルの利用手順

RESTディスパッチクラスとサンプルHTMLファイルが含まれています

(1) サンプルファイル(XML)のインポート

管理ポータルからインポートします(スタジオを利用されている場合は、スタジオでもインポートできます)。

管理ポータルは http://localhost:52773/csp/sys/UtilHome.csp でアクセスできます。

※ ポート番号はお使いの環境に合わせて変更してください。

管理ポータルにアクセスできたら以下メニューでインポートを行ってください。

0
0 7734
記事 Megumi Kakechi · 6月 1, 2021 1m read

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

OSのコマンド実行する場合、$ZF(-100) を使用します。

do $ZF(-100,"",program,args) // Windows コマンドを【同期】実行します。
do $ZF(-100,"/ASYNC",program,args) // Windows コマンドを【非同期】実行します。

mkdir, copy などのOSシェルコマンドを実行する場合は、/SHELL もあわせて指定します。

do $zf(-100,"/shell /async","mkdir","c:\temp\x")

 

詳細は以下のドキュメントを参照してください。

$ZF(-100) について【IRIS】
$ZF(-100) について
 

0
0 336
記事 Megumi Kakechi · 5月 27, 2021 1m read

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

InterSystems Data Platformは、データベースキャッシュやルーチンキャッシュなどの共有メモリを、起動時に割り当てます。

バージョン2007.1以降をWindows上で動作させる際、Windows特有の共有メモリに関する問題が生じることが判明しています。

詳細については、以下の技術資料をご参照ください。

Windows上での共有メモリの割り当てについて

また、以下の記事もあわせてご覧ください。

コンソールログに "Failed to allocate xxxMB shared memory using large pages..." のエラーメッセージが出ているとき

IRISが使用するワーキングセット(メモリ)について

0
0 548
記事 Mihoko Iijima · 5月 23, 2021 2m read

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

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

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

0
0 333
記事 Toshihiko Minamoto · 5月 18, 2021 12m read

第2部: インデックス処理

クラスにどのようなインデックスが必要であるのか、それをどのように定義するのかについて理解できたので、 次に、どのように処理するのかについて確認しましょう。

クエリプラン

注意: クラスに変更を適用する場合と同様に、ライブシステムにインデックスを追加する場合にもリスクが伴います。インデックスが入力されているときに、ユーザーがデータにアクセスしたり更新したりすると、クエリ結果が空になったり誤った結果が生じることがあります。また、構築中のインデックスが破損する場合もあります。 ライブシステムでインデックスを定義したり使用したりするには追加の手順があり、それについてはこのセクションで触れていますが、詳細はドキュメントに記載されています。)

新しいインデックスの準備ができたら、SQLオプティマイザが、クエリを実行する上で最も効率的に読み取れるインデックスであると判断するかどうかを確認できます。 プランを確認するために実際にクエリを実行する必要はありません。 クエリがあれば、プランをプログラムで確認することができます。

            Set query = 1

     Set query(1) = “SELECT SSN,Name FROM Sample.Person WHERE Office_State = 'MA'”

0
0 365
記事 Megumi Kakechi · 5月 13, 2021 1m read

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

システムクラス SYS.Lock のメソッド GetLockSpaceInfo() にてロックテーブルの空きサイズ、使用サイズが取得可能です。

%SYS>w ##class(SYS.Lock).GetLockSpaceInfo()
4717392,4712512,1200


戻り値は、“AvailableSpace, UsableSpace, UsedSpace” になり、それぞれByte単位の値を表しています。

AvailableSpace:ロックテーブルサイズから使用サイズ(UsedSpace)を引いたサイズ

UsableSpace:AvailableSpaceよりロック管理のための内部データを引いたサイズ
→これがユーザの使用できるロックテーブル空き容量になります。

UsedSpace:使用サイズ
 

詳細は、クラスリファレンス をご覧ください。

0
0 273
記事 Toshihiko Minamoto · 5月 12, 2021 12m read

これは、SQLインデックスに関する2部構成の記事の前半です。

第1部 - インデックスを理解する

インデックスとは?

最後に図書館に行った時のことを思い出してください。 通常そこには、分野別(そして作者順と題名順)に整理された本が並び、それぞれの棚には、本の分野を説明したコードが記載された本立てがあります。 特定の分野の本を収集する場合、すべての通路を歩いて一冊ずつ本の表紙を読む代わりに、目的の分野の本棚に直接向かって選ぶことができるでしょう。

SQLインデックスにもこれと同じ機能があります。テーブルの各行にフィールドの値へのクイック参照を提供することで、パフォーマンスを向上させています。

インデックスの設定は、最適なSQLパフォーマンスを得られるようにクラスを準備する際の主なステップの1つです。

この記事では、次のことについて説明します。

  1. インデックスとは何か。いつ、なぜそれを使用するか。
  2. どのようなインデックスが存在するか、どのようなシナリオに適しているのか。
  3. インデックスの例
  4. 作成方法
  • インデックスが存在する場合、どのように扱うのか。
  • この記事では、Sampleスキーマのクラスを参照します。 このスキーマは以下に示すGitHubリポジトリにあります。また、CachéとEnsembleでインストールされるSamplesネームスペースでも提供されています。

    0
    0 579
    記事 Toshihiko Minamoto · 5月 4, 2021 2m read

    ObjectScriptには、エラー(ステータスコード、例外、SQLCODEなど)を処理する方法が少なくとも3つあります。 ほとんどのシステムコードにはステータスが使用されていますが、例外は、いくつかの理由により、より簡単に処理することができます。 レガシーコードを使用している場合、さまざまな手法の変換にいくらか時間が掛かりますが、 参考として、次のスニペットをよく使用しています。 皆さんのお役にも立てればと思います。

    0
    0 588
    記事 Megumi Kakechi · 4月 29, 2021 2m read

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

    InterSystems のミラーリングを使用することで、以下2つの目的を達成できます。

    1. 自動フェイルオーバ
    2. ディザスタリカバリや、ビジネスインテリジェンスのためのデータベースの複製

    1 については、2台の InterSystems 製品を利用し、プライマリサーバの InterSystems 製品に障害が発生した場合は、もう片方の InterSystems 製品に自動フェイルオーバが行えるミラーリング構成です。

    2 については、1台のプライマリサーバである InterSystems 製品から、遠隔地も含め、任意の拠点にある複数台の InterSystems 製品へ(=非同期ミラーメンバ)データベースファイル(InterSystems IRISは「IRIS.DAT」、Caché/Ensemble/HealthShareは「CACHE.DAT」)のミラーリングを行います。
    (また、複数のプライマリサーバから1台の非同期メンバのInterSystems 製品へのミラーリングも行えます。)
     

    詳細は以下ドキュメントをご参照ください。
    InterSystems IRIS ミラーリングについて【IRIS】
    ミラーリングについて
     

    あわせて、以下の記事も是非ご覧ください。
    Cache Mirroring 101:簡単なガイドとよくある質問  
     

    ★おまけ

    0
    0 725
    記事 Toshihiko Minamoto · 4月 28, 2021 5m read

    数年ほど前、Caché Foundationsの講座(現「Developing Using InterSystems Objects and SQL」)において、%UnitTestフレームワークの基礎を講義していたことがあります。 その時、ある受講者から、ユニットテストを実行している間に、パフォーマンス統計を収集できるかどうかを尋ねられました。 それから数週間後、この質問に答えるために、%UnitTestの例にコードを追加したのですが、 ようやく、このコミュニティでも共有することにしました。

    0
    0 174
    記事 Megumi Kakechi · 4月 23, 2021 2m read

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

    アプリケーションに求められる要件は日々複雑化しています。

    しかし、複雑化するからといって開発のスピードおよび実行時のスピードが遅くなることは許されません。

    複雑な要件を満たすために現在主流の手法ではソフトウェアスタック上の様々な部品(ミドルウェア、ライブラリ、フレームワークなど)を組み合わせる方法を取ります。

    この方法は、様々なものを学習するための時間、それらを連携する方法、経年で様々なものが進化していくことに伴って各部品間の関係性が変化するためにそれらを維持管理していくための手間など様々な付帯的な作業が必要です。

    結果として本来行いたいことに集中して取り組む前に付随する作業に忙殺されることになり開発生産性があがりません。
    しかも実行時にも様々な部分が連携するためのオーバーヘッドを避けることができず期待する性能を確保することも困難になります。

    一方インターシステムズのプラットフォームには上記要件を満たすのに必要十分な機能がひとつの首尾一貫した形で提供されており上記の様な手間がほとんど必要ありません。

    さらにこのプラットフォームにはインターシステムズ独自の高性能、スケーラビリティの高いデータベースエンジンが内蔵されており様々なデータ処理を効率良く高速に処理します。

    0
    0 172
    記事 Mihoko Iijima · 4月 22, 2021 2m read

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

    ユーザ定義エラーとして使用したいエラーコードと対応するメッセージを記述したXMLを用意します。

    なお、エラーコードは負の整数で設定してください。

    <?xml version="1.0" encoding="UTF-8" ?> 
    <MsgFile Language="ja">
      <MsgDomain Domain="UserErrors">
        <Message Id="-111" Name="MyError">エラーが発生しました</Message> 
        <Message Id="-222" Name="MyError2">エラーが発生しました2</Message> 
      </MsgDomain>
    </MsgFile>
    

     

    XML ファイルが作成できたら使用したいネームスペースにロードします。

    set x=##class(%MessageDictionary).Import("error.xml")
    

     

    ロード完了後、次のようなコマンドでユーザ定義エラーを取得、表示することができます。

    0
    0 194
    記事 Mihoko Iijima · 4月 22, 2021 4m read

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

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

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

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

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

    0
    0 304
    記事 Toshihiko Minamoto · 4月 22, 2021 11m read

    はじめに (および本記事を書いた動機) {#RobustErrorHandlingandCleanupinObjectScript-IntroductionandMotivation}

    ObjectScript コードのユニット (ClassMethod など) を実行する場合、そのスコープ外にあるシステムの諸部分と対話するときに適切なクリーンアップを行えないことが原因で、様々な予期せぬ副作用が発生することがあります。 以下にその一部を紹介します。

    • トランザクション
    • ロック
    • I/O デバイス
    • SQL のカーソル
    • システムフラグと設定
    • $Namespace
    • 一時ファイル

    ObjectScript のこういった重要な機能を、クリーンアップのコーディングや防御的なコーディングを適切に行わずに使用すると、普段は正常に動作しても、予期せぬかたちで、またデバッグが困難なかたちで失敗し得るアプリケーションができてしまう可能性があります。 想定できるすべてのエラーケースにおいてクリーンアップコードが正常に動作することは、極めて重要です。表面的なテストではエラーを見落とす可能性が高いことを考えるとなおさらです。 この記事では、既知の落とし穴をいくつかご紹介し、信頼性の高いエラー処理とクリーンアップを実現するための 2 種類の対処法について説明いたします。

    0
    0 353
    記事 Toshihiko Minamoto · 4月 20, 2021 7m read

    開発者の皆さん
    こんにちは。

    先日、RESTのクラスを使って、PDFなどのファイルをアップロード、ダウンロードするサンプルをお送りしたお客さんからご質問を頂きました。
    ダウンロード機能を使ってmp4などの動画を表示させた場合、以下のようにvideoの画面下のスライダーを移動しても、再生を進めたり戻したりができませんでした 

     

    やはり、以下のようにスライダを動かすと、その時点の画像が表示されたほうが良いですね。 

    そこでgoogleで調べてみると、Http Range requestへの対応が必要ということですのでObjectScriptで作成してみました。

    表示用html

    ブラウザで動画を表示するための簡単なhtmlファイルは以下の通りです。sourceタグのURLにGETメソッドでアクセスし動画データを受信します。

    <html>
    <head>
    <title>ストリーム再生 </title>
    </head>
    <body>
    ストリーム再生<br>
        <video controls width="800" >
        <source src="http://localhost:52773/csp/storage/River.mp4"type="video/mp4"> 
        </video>
    </body>
    </html>

    RESTクラス

    0
    0 2588
    記事 Toshihiko Minamoto · 4月 19, 2021 12m read

    ++更新日:2018年8月1日

    Cachéデータベースミラーリングに組み込まれているInterSystems仮想IP(VIP)アドレスの使用には、特定の制限があります。 具体的に言うと、ミラーメンバーが同じネットワークサブネットに存在する場合にのみ使用できるというところです。 複数のデータセンターを使用した場合は、ネットワークの複雑さが増すため、ネットワークサブネットが物理的なデータセンターを越えて「延伸」されることはさほどありません(より詳細な説明はこちらです)。 同様の理由で、データベースがクラウドでホストされている場合、仮想IPは使用できないことがよくあります。

    ロードバランサー(物理的または仮想)などのネットワークトラフィック管理のアプライアンスを使用して、クライアントアプリケーションやデバイスに単一のアドレスを提示することで、同レベルの透過性を実現できます。 ネットワークトラフィックマネージャは、クライアントを現在のミラープライマリの実際のIPアドレスに自動的にリダイレクトします。 この自動化は、災害後のHAフェイルオーバーとDRプロモーションの両方のニーズを満たすことを目的としています。 

    0
    0 550
    記事 Megumi Kakechi · 4月 16, 2021 4m read

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

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

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

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

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

    こちらの方法で一時停止状態が解消しない場合は、診断レポート※(^SystemCheck/^Buttons)とタスクの情報(以下の手順で取得)をサポート宛てにお送りいただいた上、ご連絡ください。

    0
    0 310
    記事 Mihoko Iijima · 4月 15, 2021 2m read

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

    このエラーが発生する原因としては、アプリケーションの中で既に他のプロセスからロック対象リソースがロックされていて、何らかの理由でそのロックが解放されていないケースが考えられます。

    他のプロセスがロックしている兆候がない場合は、ロックテーブルの空き領域が不足しているケースが想定されます。
    その場合は、メッセージログ(コンソールログ)に LOCK TABLE FULL のメッセージが出力されます。

    トランザクション処理を行なっている場合には、ロック解放の延期が影響しているケースも考えられます。
    トランザクションとロック解放の延期については、以下のドキュメントをご参照下さい。

    ドランザクション処理について【IRIS】

    ドランザクション処理について

    また、トランザクション中に、同一テーブルに対する大量レコードのSQL 文による更新がある場合、ロックしきい値(既定値は1000)に到達してロックエスカレーションが発生し、その結果として、テーブルロック状態になっている可能性もあります。

    このように、ロックタイムアウトエラーの原因は幾つか考えられますので、まずは、管理ポータル(バージョン2010.2以前では、[システム管理ポータル])の、ロックメニューにて、現在のロックの状態をご確認下さい。

    0
    0 850
    記事 Mihoko Iijima · 4月 15, 2021 2m read

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

    クラスに定義されたプロパティの情報については、以下システムクラスを利用して情報を取得できます。

    %Dictionary.ClassDefintion

    %Dictionary.PropertyDefinition

    コード記述例は以下の通りです。

    0
    0 391
    記事 Toshihiko Minamoto · 4月 15, 2021 3m read

    皆さん、こんにちは!

    皆さんに私のプロジェクトをご紹介したいと思います。

    かつて私は、職場でドキュメントを作成し、それに氏名、誕生日、住所など、人に関する情報を挿入するといった、平凡なタスクを担当していました。 そこで、簡単に処理しようと考えた私は、アプリケーションを書きました。

    このアイデアは斬新でないどころか、他の言語ですでに実装されていました。 そこで私は、似たようなツールを Cache Object Script で開発しようと考えたのです。 コンセプトは以下のとおりです。

    特殊なセマンティクスを用いて、LibreOffice か Microsoft Word でテンプレートを作成します。

    そして、テンプレートで使用されるすべての変数が定義されるメソッドまたはプロシージャを書きます。 メソッドは、[ProcedureBlock = 0] キーワードを使って宣言する必要があります。そうしないと、テンプレートを表示する最中に未定義のエラーが出てしまいます。

    メソッドの中で、以下のコマンドを使ってドキュメントをレンダリングします。

    0
    0 155
    記事 Tomoko Furuzono · 4月 13, 2021 2m read

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

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

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

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

    Caché/Ensemble2018.1のサポートクラウドプラットフォーム

    他バージョンの対応については、弊社サポートページからバージョン毎の説明ページをご参照ください。

    クラウド環境を利用するにあたり、別途ライセンスの追加購入は必要はありません。
    必要なライセンスは、InterSystems製品が稼働する仮想サーバのOSで必要なライセンス(Windows 64/32bit、Linux 64bit、Core数等に依存)となります。

    クラウド上に環境構築するにあたり検討・考慮すべき点として、AWS では、2015.1 より前のバージョンをインストールする場合には制限があります。詳細は関連トピックをご覧ください。

    構成については、以下の記事をご覧ください。

    0
    0 316