Encontrar

記事
· 2021年9月9日 2m read

RESTでクロスドメイン制約を回避する方法

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

2025.1以降CORS関連の設定方法は大きく変わっています。

詳細は、以下の記事を参照してください。

jQueryを使用してIRISからJSONデータを取得する方法

 

%CSP.REST クラスを継承する REST 用ディスパッチクラスで REST を実装している場合は、クロスドメイン制約回避用に用意されたパラメータ HandleCorsRequest を利用します。

設定方法は以下の通りです。

REST 用ディスパッチクラスをスタジオで修正する場合は、
[クラス] > [リファクタ] > [オーバーライド] を開き、[パラメータ]タブを選択 > [HandleCorsRequest] を選択後OKボタンを押下します。

 

以下の定義が追加されるので、1を設定します。

 

Parameter HandleCorsRequest=1;

REST ディスパッチクラスを Atelier で修正する場合は、オーバーライドメニューの用意がないため、パラメータの定義を追加するか、%CSP.REST クラスを開き、HandleCorsRequest の定義をコピーし修正します。

パラメータ:HandleCorsRequest 他に、REST 用ディスパッチクラスに用意する URL マップ(URL に対応するメソッドのマップ定義)の Route 要素毎に Cors 属性を true に設定する方法でも回避できます。
メモ:Cors 属性はデフォルトでは false が設定されています。

XData UrlMap
{
<Routes>
<Route Url="/persons/:keyword" Method="GET" Call="REST.Person:getperson" Cors="true" />
<Route Url="/persons2/" Method="POST" Call="REST.Person:getperson2"/>
Routes>
}

設定詳細については以下ドキュメントをご参照ください。


CORS使用のためのRESTサービスの構成について【IRIS】

CORS使用のためのRESTサービスの構成について

 

コードサンプルについては、関連トピックをご参照ください。

JQueryでデータをJSON形式で取得する方法

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2021年9月8日

Video: Deploying & Upgrading IRIS with Kubernetes Operator

Hey Developers,

New video is already on InterSystems Developers YouTube:

⏯ Deploying & Upgrading IRIS with Kubernetes Operator

Extend your Kubernetes instance with the InterSystems Kubernetes Operator and learn the easiest way to deploy, upgrade, and expand your InterSystems IRIS data platform instance.

🗣 Presenter: @Steve Lubars, Distinguished Systems Developer, InterSystems 

Stay tuned!

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2021年8月30日 2m read

クエリをチューニングする方法

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

InterSystems 製品には、テーブルのコンテンツに関する統計を収集し、クエリの最適化に役立てる「テーブルチューニング機能」があります。

設定方法は、以下のドキュメントをご参照ください。

ターミナルでは次のコマンドを実行します。

do $SYSTEM.SQL.Stats.Table.GatherTableStats("スキーマ名.テーブル名",1,1)

 

 2021.1以前のバージョンでは以下メソッドを利用します。

Do $system.SQL.TuneTable("スキーマ名.テーブル名",1,1)

 

また、以下の資料もご参照ください。

1) パフォーマンス調査の基礎知識として必要なグローバル構造の解説やSQLの動作の仕組みからクエリプランの見方の解説

インターシステムズ・シンポジア2011の資料

2) パフォーマンスチューニングの例(P13~)

インターシステムズ・シンポジア2012の資料

3) ビットマップ・インデックスの圧縮やオプティマイザ・ヒントなど、Caché SQLのパフォーマンスを最大限に引き出すための情報について

インターシステムズ・シンポジア2014の資料

4) パフォーマンスに困ったときにどこに着目し、どのツールで調べていくか、お客様から日々ご相談をいただくカスタマーサポートから、解決に向かうアプローチの「イロハ」をご紹介するビデオ

動画:Performance 101

5) 開発者コミュティのパフォーマンス関連情報(performanceタグ)

performanceタグ

 

関連する以下記事、FAQトピックも併せてご参照ください。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2021年8月23日 4m read

データベースファイルのサイズを圧縮する方法

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

※データベースファイルとは、IRIS.DAT、および、CACHE.DATのことを指します。

Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 以降のバージョンより、データベースファイル のサイズの縮小に、データベースの「圧縮」と「未使用領域の削除」機能をあわせて使用できます。

※注意※
Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 より前のバージョンでは、データベースの「圧縮」機能は使用できません。使用された場合、データベース破損が引き起こされる可能性があります(「未使用領域の削除」機能は利用できます)。

詳細情報は以下、弊社ウェブサイト内のページをご確認ください。

製品ニュースとアラート>警告: データベース圧縮またはデフラグ後のデータベース整合性の問題

 

データベースサイズ縮小手順は以下の通りです。

管理ポータル: [システムオペレーション] > [データベース] を開き、操作したいデータベース名をクリックします。

(または、画面左上の[空き容量]ボタンをクリックし、データベースの空き容量を表示します。)

 

① 「圧縮」ボタンにより、データベースファイルの使用していないブロックを後ろに集めます

<圧縮のイメージ> ●が使用中ブロック、〇が未使用ブロックだとします。

●●○●●○○●○○ ←のようにブロックが並んでいるデータベースファイル(*.DAT)を「圧縮」すると

●●●●●○○○○○ ←このようになります (左が前方)

 

②「未使用領域削除」ボタンにより、後方に集めた未使用ブロックを削除してデータベースファイルのサイズを縮小します。

<未使用領域削除のイメージ> ●が使用中ブロック、〇が未使用ブロックだとします。

●●●●●○○○○○ ←のようにブロックが並んでいるデータベースファイルに「未使用領域削除」を実行すると

●●●●●  ←このようになります

 

圧縮について詳細は、ドキュメント(データベースの圧縮(IRIS))をご参照ください(2018.1以前のドキュメント:データベースの圧縮)。

 

管理ポータルの操作と同様の処理を、^DATABASE ユーティリティを使用して実行することもできます。

%SYS ネームスペースに移動してから実行します。

USER>zn "%SYS"
 
%SYS>do ^DATABASE
 
 
 1) Create a database
 2) Edit a database
 3) List databases
 4) Delete a database
 5) Mount a database
 6) Dismount a database
 7) Compact globals in a database
 8) Show free space for a database
 9) Show details for a database
10) Recreate a database
11) Manage database encryption
12) Return unused space for a database    // 「未使用領域削除」
13) Compact free space in a database      // 「圧縮」
14) Defragment a database         // 「DB の断片化解消」
15) Show background database tasks
 
Option?

※「圧縮」 = 13) Compact freespace in a database
 「未使用領域削除」= 12) Return unused space for a database

 

^DATABASE ユーティリティの 14) Defragment globals in a database(「DBの断片化解消」)について補足します。

「DBの断片化解消」では、指定したデータベースファイル内のグローバル毎にブロックが再編成され、データベースファイル内で連続領域に再配置します。

「圧縮」をより強力にしたものですが、この再配置を行う為には、データベースファイル末尾に十分な空きブロックが必要です(一般的に見て、デフラグを定期的に実行する必要はありません)。

<「DBの断片化解消」のイメージ>

^a ♦  ^b  ^c♥ 空き○

断片化解消前
♦♦♠♠♠♠♦♦♥♥♥♦♦♥♥○○○○○○

断片化解消後
♦♦♦♦♦♦♦♠♠♠♠♠♥♥♥♥♥○○○○○○○○○

 

※注意※
「断片化解消」機能についても、2015.1.3、2015.2.2 より前のバージョンでは使用できません。使用された場合、「圧縮」機能と同様に、データベース破損が引き起こされる可能性があります。

詳細は、ドキュメント(データベースのグローバルのデフラグ(IRIS))をご参照ください(2018.1以前のドキュメント:データベースのグローバルのデフラグ)。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください