記事 Megumi Kakechi · 2月 17 3m read

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

1. 整合性チェックの目安の時間

整合性チェックの目安の時間は、環境により異なってきます。ディスク速度やDBサイズに大きく依存してきます。

同じディスク上に置かれた比較的サイズの小さなDATでまず実施して、サイズと経過時刻からおおよその時刻を推測してください。

また、整合性チェックの方法によって要する時間が変わってきます。

詳細は参考記事で紹介しております「整合性チェックの各方法の違いについて」をご覧ください。
 

2. 動作状況(正常に稼働しているか)を確認する方法

ターミナルで整合性チェックを実行していただく場合は、現在どのデータベース/グローバルのチェックを実行しているのかを出力ログ(画面またはファイル)にて確認することが可能です。

管理ポータルで実行する場合は、整合性チェックの実行プロセスID(※PIDの確認方法)を指定して、ターミナルで以下のコマンドを実行することにより確認することが可能です。
詳細については、ドキュメント をご覧ください。

%SYS>do Display^Integrity("^IRIS.TempIntegrityOutput(2596)")  // 整合性チェック実行プロセス(2596)の場合
0
0 0
記事 Hiroshi Sato · 2月 12 1m read

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

インターオペラビリティ機能を使用してビジネスホストのビジネスロジックを実装する際に、デバッグ等の目的でログ出力を行うための専用マクロが用意されているので、ご紹介します。

以下のマクロが用意されています。

$$$LOGINFO("これはログです。")  
$$$LOGERROR("これはエラーです。")  
$$$LOGWARNING("これは警告です")
$$$LOGSTATUS(status) 
$$$LOGSTATUS(status2) 
$$$ASSERT("これはアサートです。")

ビジネスオペレーション等のコードに上記のコードを書くことにより、インターオペラビリティのイベントログにその内容が表示されます。

以下の様に表示されます。
 

0
0 0
InterSystems公式 Seisuke Nakahashi · 2月 11

開発者コミュニティのみなさま、2025年もよろしくお願いします!今年も素晴らしい製品やニュースをみなさまにお届けいたします。本日は VS Code の InterSystems Language Server 拡張機能の最新バージョンをご紹介します。Language Server 拡張機能の多くは、ObjectScript 拡張機能を通じてご提供することが多いです。そのため、コード補完機能やホバー機能といった、2024年に追加された Language Server 拡張機能の新機能には、なかなか気づきにくいかもしれません。ぜひ Language Server 変更履歴 で、見逃していたかもしれない新機能がないかご確認ください。最新バージョン2.7.0では、Windows ARMプラットフォームがサポートされたので、Surface Pro 11 (私はこの記事をウキウキしながら書いています) のようなデバイスをお持ちの方は、お使いのマシンで素晴らしい ObjectScript 開発を体験いただけます。Language Server 拡張機能をお試しいただき、何かありましたらぜひコメントをお寄せくださいませ。お待ちしております。

0
0 0
記事 Megumi Kakechi · 2月 4 4m read

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

整合性チェックを行う場合、管理ポータルやタスクマネージャーから行う方法と、ターミナルから ^Integrity ユーティリティを使用して行う方法があります。

こちらのトピックでは、それぞれの違いをご説明します。
 

管理ポータル、整合性チェックタスク、
および SYS.Database の IntegrityCheck メソッドから行う方法


こちらの方法は、選択した複数のデータベースや、1 つのデータベースに格納された選択可能な複数のグローバルを対象に整合性をチェックを行います。

管理ポータル
[システムオペレーション] > [データベース] 整合性チェック・ボタン
※チェックを行いたいネームスペース、必要に応じてグローバルを選択し、実行・ボタンをクリック

整合性チェックタスク
[システムオペレーション] > [タスクマネージャー] > [タスクスケジュール] 整合性チェック・タスク 


SYS.Database クラスの IntegrityCheck メソッド:

0
0 0
InterSystems公式 Megumi Kakechi · 1月 29 1m read

インターシステムズは、InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect のメンテナンスバージョン 2024.1.3 をリリースしました。
 

✅ 2024.1.3

2024.1.3 は、最近発行された以下の警告の修正を含む、以前のリリース2024.1.x のバグフィックスを提供します。
警告:特定の $List 操作でデータベースとジャーナルファイルに不正なデータが作成される

詳細な情報は、以下のページをご参照ください(すべて英語版です):


キットの取得方法

本製品は、従来からのインストーラパッケージ形式と、コンテナイメージ形式をご用意しています。その一覧は、以下のサポートプラットフォームページ(英語)をご覧ください。
Supported Platforms webpage

0
0 0
お知らせ Mihoko Iijima · 1月 26

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

2025 年最初のコンテスト開催が決定しました!

✍️ InterSystems 技術文書ライティングコンテスト 2025(USコミュニティ) ✍️

InterSystems 製品やサービスに関連した記事であればどのような内容でもご応募いただけます。

🎁 投稿者全員に参加賞あります: コンテストに投稿いただいた参加者全員にスペシャルな参加賞をご用意いたします!

0
0 0
記事 Mihoko Iijima · 1月 21 16m read

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

Teams ワークフロー Webhook を用意すると、curl コマンドや REST クライアントを利用して Teams チャネルに任意メッセージを簡単に送信できるので、IRIS や IRIS の Interoperability を使って自動的に何か情報を入手+必要なときだけ Teams チャネル通知ができたら面白いな、と思い試してみた内容をご紹介します。

以下、Teamsワークフローの作成例です。

Teams ワークフローの仕様に合わせたメッセージ用 JSON が用意できれば、こんなメッセージを出すことができます。

Teams チャネルにメッセージを通知するには「Teams ワークフローの Webhook」の用意が必要です。(この用意によってアクセスするために必要なURLが生成されます)詳しくは、「Microsoft Teamsのワークフローを使用して受信 Webhook を作成する」をご参照ください。

通知までの設定などについては、こちらのページを参考にさせていただきました:Teams チャネルへメッセージ送信する方法

以下、試した順でご紹介します。

1. curl コマンドでまずは実行してみる

2. シンプルにターミナルから試す

3. 通知メッセージのJSONを変えてみる

4. メッセージのJSONをJSONテンプレートエンジンで作ってみる

0
0 0
お知らせ Anastasia Dyubaylo · 1月 16

🚨 メンテナンス予定のお知らせ 🚨  

2025年1月20日(月曜日)、計画的なメンテナンスのため、Developer Communityサイトが一時的に利用できなくなる場合があります。

ご不便をおかけしますことをお詫び申し上げます。ご理解いただきありがとうございます。プラットフォームの改善に向けた取り組みにご協力いただき、感謝いたします!  

0
0 0
記事 Tomoko Furuzono · 1月 17 1m read

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


質問:

データベースファイルが存在するフォルダ全体をコピーしたとき、コピーしたデータベースファイルをマウントできません。なぜですか?

回答:

コピーした データベースファイル(iris.dat / cache.dat)のあるフォルダに、拡張子lck(iris.lck / cache.lck)のファイルが存在していないでしょうか?
InterSystems製品を停止せずに(もしくは、ディスマウントせずに)データベースファイルをコピーした場合、コピー前の情報を保持したままの lckファイルが残ってしまい、コピー後にマウントできない状況になります。
また、InterSystems製品を停止せずにコピーしたデータベースファイルは正しい状態ではないので、問題が生じる可能性があります。
コピー元のInterSystems製品を停止(もしくはディスマウント)した後、再度データベースファイルををコピーし直してください。

0
0 0
記事 Tomoko Furuzono · 1月 17 1m read

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

2024.1以降のバージョンにおいて、組み込みPython実行時のPythonのバージョンを自由に選択できるようになりました。(フレキシブル Python ランタイム機能)
これにより、新しいPythonバージョンへアップグレードや、特定のディストリビューションを使用する、などということが可能になります。
ドキュメント:フレキシブル Python ランタイム機能の概要
但し、オペレーションシステム及びIRISのバージョンによってサポート状況は異なります。
詳細は、下記ドキュメントページをご確認ください。
IRIS/IRIS for Health 2024.1
最新バージョン
※間のバージョンについては、それぞれ各バージョンのドキュメントをご確認ください。 
 
また、Embedded Pythonの最新情報については、下記セミナー動画もご参考になさってください。
開発者向けオンラインセミナー:Embedded Pythonの新機能
※フレキシブルPythonランタイムについては、3'40"あたり~

0
0 0
記事 Hiroshi Sato · 1月 17 1m read

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

SQLでのストリームフィールドの取得についてはこちらのドキュメントに記載されております。

ストリーム・フィールド・データのクエリ


例: キャラクターストリームデータの50文字取得する

select substring(field1,1,50) from sample.streamtable

%SQL.Statement を使用したクエリでそのストリームオブジェクトのOREF値を取得して、ストリームデータにアクセスすることもできます。

 set stmt=##class(%SQL.Statement).%New()
 set status = stmt.%Prepare("select field1 from sample.streamtable")
 set rs=stmt.%Execute()
 write rs.%Next()
 set clob=rs.%GetData(1)
 write clob.Read(50)

埋め込みSQLを使用する場合は、そのストリームオブジェクトのOREFではなくストリームIDが返ってくるので、以下のようにストリームをオープンする処理を追加する必要があります。
 

0
0 0
記事 Hiroshi Sato · 1月 17 1m read

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

何らかの理由でサーバー移行が必要になった際に、移行前の環境から移行後の環境に設定情報をコピーすることで設定作業を軽減できます。

以下の設定情報を移行できます。

  • cache.cpf
  • SQLゲートウェイ設定
  • CSPゲートウェイ設定 *注1
  • CAHCESYSデータベースに保存しているユーザー作成ルーチンなど *注2
  • セキュリティ設定
  • タスク設定

注1 パスワードを設定している場合には、パスワードのみ手動で再設定が必要です。
注2 ^%ZSTART, ^ZMIRRORルーチンなど 優先接続サーバー設定に関しても、物理的には移行可能ですが、Windowsのレジストリー情報をコピーする必要があります。
レジストリー情報をコピーして他システムに移行する方法は通常推奨される方法ではありません。

0
0 0
記事 Hiroshi Sato · 1月 17 1m read

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

Question:

使用中のプログラムをコンパイルして保存すると、現在そのプログラムを実行中のプロセスに影響しますか?

Answer:

実行中のルーチンはその旧バージョンをメモリー上に保持しているため、コンパイルして新しいルーチンが保存されても影響なく実行を継続できます。

クラスのメソッドについても同様です。 再度そのルーチンが呼び出された時点でコンパイルされた新しいルーチンが使用されるようになります。

0
0 0
記事 Hiroshi Sato · 1月 17 2m read

Mac版IRISでは、現状Pythonのバージョンが固定(3.11)なのですが、これに付随する他製品との相性問題に遭遇しましたので報告します。

今までEmbedded Pythonは調子よく動作していたのですが、ある時から急に動作しなくなりました。

原因を調べてみると、Python3.13がインストールされ、それがデフォルトとして上書きされたため、irispythonコマンドを発行すると、それが内部で3.13を呼ぶ様になってしまったためでした。

ちなみにiris session でログインし、そこからEmbedded Pythonを実行する場合は、問題ありません。

あくまでもirispythonコマンドで直接.pyファイルを実行する場合に発生する問題です。

そしてとりあえずの対処法は、python3をpython3.11で置き換える方法です。

以下のような感じです。(どのMacでもbrewコマンドでインストールした場合、ディレクトリ構造は同じだと思いますが、違う可能性もゼロではありません)

cp /opt/homebrew/bin/python3.11 /opt/homebrew/bin/python3

さて、ところで何で3.13がインストールされていたのかというと、

IRIS SQLのLOADコマンドを動作させるためには、JDKまたはJREが必要なのでそれをインストールしました。

0
0 0
InterSystems公式 Ayumu Tanaka · 1月 15

インターシステムズは、特定の $List シンタックスを使用することで不正なデータベースとジャーナルレコードが作成される問題を修正しました。この問題が発生する可能性は非常に低いものですが、発生した場合の影響は非常に大きなものとなります。

この問題は、以下の製品およびそれらベースとしたその他のインターシステムズ製品に存在します:

  • InterSystems IRIS® : 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • InterSystems IRIS® for Health: 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Health Connect: 2023.3.0, 2024.1, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Unified Care Record と関連製品: 2024.2

この問題はUnicode版の製品でのみ発生します。

以下のシンタックスでグローバル上のリスト形式データに新しい要素を追加する際に問題が発生します。

SET $LIST(<グローバル>, *+1) = 値

0
0 0
記事 Megumi Kakechi · 1月 14 2m read

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

09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] ISCLOG: SuperServer Super Server job slave failure ns=%SYS rtn=%SYS.SERVER
09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] SuperServer failed to start slave server

メッセージログ(cconsole.log/messages.log)の上記のようなログは、スーパーサーバ/SuperServer(既定:1972ポート)に対して外部からリクエストがあったが、リクエストに対応する子プロセスの起動に失敗した場合に記録されます。

スーパーサーバへの新規接続に対してスーパーサーバがJOBコマンド(タイムアウトあり)を実行したが、タイムアウト時間内にJOBコマンドが完了しなかったケースなどが考えられます。


通常こちらは 、システムの負荷が非常に高くJOBコマンドによる子プロセスの生成に時間を要してしまったような、OS レベルの問題である可能性が高いです。

運用に支障がないようであれば、そのような状況は一時的であったと考えられます。

0
0 0
記事 Mihoko Iijima · 1月 13 1m read

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

<ALARM>エラーは、クライアントアプリでタイムアウトが発生し、その結果InterSytemsサーバのプロセスがあわせて終了している状況をあらわしています。

クライアントアプリで、タイムアウト設定を無効にすることで回避できる可能性があります。

例えば、クライアントアプリから初回実行するSQL文がある場合、初回実行時のみInterSystems製品内部にクエリキャッシュ(=コンパイル済クエリ)を生成するため(※1)通常実行よりも時間がかかります(2回目以降の実行ではコンパイルは行われません)。

例えば、コンパイルに非常に時間がかかるSQL文の初回実行をクライアントアプリから命令し、タイムアウト以内に応答が戻らない場合 <ALARM> エラーが発生します。

※1:IRIS2020.1以降では埋め込みSQLで記述されたクエリも、初回実行時にコンパイルされます(2019.1以前では、埋め込みSQLを含むクラス/ルーチンがコンパイルされるタイミングでSQLもコンパイルされます)。

0
0 0
記事 Mihoko Iijima · 1月 9 2m read

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

InterSystems製品では、システム開始時に任意の処理を追加できます。

データベースミラーリングを構成していない環境では、%ZSTARTルーチンのSYSTEMラベルを作成することで任意の処理を実装できますが、データベースミラーリングを構成している環境では、このルーチンでは動作しない処理があります。

ご参考:^%ZSTART ルーチンと ^%ZSTOP ルーチンによる開始動作と停止動作のカスタマイズ

理由として、ミラーリング構成の場合、ミラーデータベースへのアクセスはミラーリングサービスが開始されプライマリメンバとなるまでReadOnlyとなります。

ミラーリングの開始処理は、%ZSTARTの処理とは別プロセスで実施している為、%ZSTARTの実行時にミラーデータベースへ書き込みアクセスができる状態とは限りません。

そのため、InterSystems製品開始時にミラーデータベースにアクセスするような任意処理を追加する場合は、ルーチン:ZMIRRORの NotifyBecomePrimary()を使用します。

ご参考:^ZMIRROR ルーチンの使用法

なお、ルーチン:ZMIRROR は、%ZSTART と同様に既定では存在しませんので%SYS上に新規で作成する必要があります。

例:ZMIRROR.mac

0
0 0
お知らせ Rie Tokue · 1月 8

 

新年おめでとうございます。今年もインターシステムズを宜しくお願い申し上げます。

さて2025年最初のウェビナーは「開発効率化とシステム統合の実現:InterSystems IRISプラットフォームによる

次世代システム基盤の構築」のテーマで、2月20日に開催いたします。

日時:2025年2月20日(木)13時半~14時

参加費無料・事前登録制

ご登録はこちらから

【概要】

当セミナーでは、現場で本当に使える統合プラットフォームについて、技術者の悩みから経営課題まで、リアルな視点でお届けします。

AIやデータ活用で苦労している開発者の方、コスト削減と開発効率の両立に頭を悩ませているマネージャー、そして未来の技術戦略を描きたい経営者の方々へ。

最新のテクノロジ―トレンドと実践的なソリューションを、成功事例とともにご紹介します。技術的な知見とビジネス価値の両面から、これからのDXを考える30分のセッションです。

【こんな方にお勧め】システム開発や開発基盤に興味がある;

  • --開発プロジェクトマネージャー
  • --受託開発企業のテクニカルディレクター
  • --SIer企業の技術責任者
  • --システム基盤の選定に関わる意思決定者
  • --デジタルトランスフォーメーション推進担当者

ご多用中とは存じますが、皆様のご参加をお待ち申し上げております。

0
0 0
記事 Tomoko Furuzono · 1月 7 1m read

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


質問:
データ容量を見積もる計算式はありますか?


回答:
正確に見積もるための計算式は残念ながらありません。

InterSystems IRIS Data Platformの場合、データ部に関してはデータを全て可変長で格納しますので、各フィールドの平均がどのくらいであるかという目安の数字で平均レコード長を求め、キー部分も同様の計算を行い、必要な容量の推測値を求める必要があります。

インデックス部に関してはキー圧縮されますので、データと同じような上記の計算を行った推測値よりは少なくなることが期待できます。 ただしその圧縮率はデータの特性に大きく影響されますので、どの程度少なくなるかは一概には言えません。

実データのサンプル(例えば、1万件のデータ)をロードし、その時点でのサイズを確認して想定される件数分のデータ容量を推測するというのが現実的な方法となります。

0
0 0
記事 Megumi Kakechi · 1月 7 2m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、タスク履歴の結果内容に、「タスクは 10 Apr 20xx 12:00:00AM 19 Aug 20xx 12:00:00AM から継続中 に有効期限切れになりました」のようなログがある場合、その意味と対処方法について説明します。


このログは、実行予定のタスクをチェックした際に、時間が対象タスクの有効期限を過ぎてしまったために、表示しているログになります。
有効期限を指定していない場合(※)は、次回タスク予定時刻が有効期限になります。
※有効期限の設定は、^TASKMGRユーティリティから行うことができます。


例えば、毎分実行予定のタスクスケジュールがあった場合、実行タスクの実行時間が1分を超える場合、仮に130秒とする場合、1分後と2分後に予定していたタスクスケジュールは実行することができなかったことになります。
この場合、3分後のタスクスケジュール以降実行されることになり、実行されなかったタスクは、「タスクが次のスケジュール時刻を過ぎても実行を続けています」とログされ、次に正常に実行できたタスクの後に「タスクは YYYY-MM-DD hh:mm YYYY-MM-DD hh:mm から継続中 に有効期限切れになりました」のようにログされます(タスク履歴へ)。

0
0 0
記事 Hiroshi Sato · 1月 6 1m read

日本でMacユーザーのIRIS使いがどの程度いるのかわかりませんが、圧倒的少数派なのは確かでしょう。

そのせいもあってか、Mac版のインストーラは、Windows版ほどきめ細かい対応をしてくれていません。

Windows版はインストーラが勝手に日本語のロケールを設定してくれているのですが、Mac版(おそらくLinux版も)は英語ロケールのままです。

それでも、通常の使用ではさほど問題がないといえないこともないのですが、ファイルを読んだりする場合や他にも何かと不都合があります。(何かあったような気がしますが、忘れました。)

ですので、Macユーザーは面倒ですが、管理ポータルで日本語ロケールjpuwのインストールをする必要があります。

またはターミナルでコマンド一発でもOKです。

Do##class(Config.NLS.Locales).Install("jpuw")

ちなみにこのロケールjpuwは説明を読むとUNIX用と書いていますが、WindowsでもファイルI/OなどのデフォルトエンコーディグをSJISではなくUTF8にしたい場合にも使えます。

昨今は、WindowsといえどもUTF8でファイル作成するケースが増えていますので、今更SJISいらないという人は、思い切ってこのロケールに切り替えるというのもありです。

0
0 0
記事 Mihoko Iijima · 1月 6 2m read

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

POST要求で受信したBodyのJSON文字列を、REST ディスパッチクラス内メソッドでダイナミックオブジェクト(%DyamicObject)に変換する際、以下エラーが発生する場合があります。

{
    "errors": [
        {
            "code": 5035,
            "domain": "%ObjectErrors",
            "error": "エラー #5035: 一般例外 名前 'Premature end of data' コード '12' データ ''",
            "id": "GeneralException",
            "params": [
                "Premature end of data",
                12,
                ""
            ]
        }
    ],
    "summary": "エラー #5035: 一般例外 名前 &#39;Premature end of data&#39; コード &#39;12&#39; データ &#39;&#39;"
}
0
0 0
記事 Megumi Kakechi · 12月 26, 2024 1m read

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

ジャーナルファイルの中身を参照したい場合、通常は管理ポータルで参照します。

管理ポータル:
[システムオペレーション] > [ジャーナル] : (該当ジャーナルの名前)参照 リンクをクリック


こちらのページで、外部に保存したジャーナルファイルも参照することができることをご存じでしょうか?

以下のように、ID= の後ろにジャーナルのファイルパスを指定することで、ジャーナルファイルの中身を管理ポータルで参照することが可能です。

http://localhost/iris/csp/sys/op/UtilSysJournal.csp?$ID1=C:\temp\20240826.002z
 


ジャーナルファイルは、YYYYMMDD.001 の形式でも、YYYYMMDD.002z のような圧縮形式のどちらでも参照可能です。
(ジャーナル圧縮対応バージョン:2022.1 及び 2021.2~)

また、ミラージャーナルファイル(例:C:\temp\MIRROR-MIRRORSET-20240826.001z)も同様に参照可能です。

是非お試しください。


enlightened【ご参考】
ジャーナルファイルの内容を管理ポータル以外で参照する方法
 

0
0 0
記事 Mihoko Iijima · 12月 26, 2024 2m read

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

方法は2種類あります。

1) 同一サーバにIISとCachéがインストールされている環境をそのままアップグレードする場合は、IRIS(※)インストールキットを起動し「CACHE(CONVERSION)」からCSPゲートウェイとCaché両方をアップグレードします。

2) IISがIRISとは異なるサーバにインストールされている場合は、IRIS用Webゲートウェイキットを利用します。

(※)InterSystems IRISまたはIRIS for Health

それぞれの方法は以下の通りです。

1)同一サーバにIISとCachéがインストールされている環境の「CACHE(CONVERSION)」でのアップグレード方法

a) インストーラーを起動します。

b) CACHE(CONVERSION)を選択します。

c) 「このインスタンスのローカルIIS Webサーバを構成」選択し「次へ」のボタンをクリックします。

d) 「コンバート」ボタンをクリックします。(この後、IRISのライセンスキーの指定を行う必要があります。事前にiris.keyをご用意ください)

2) IRIS用Webゲートウェイキットを利用する方法

a) Webゲートウェイキットを起動します。

b) 「Complete」を選択し「Next」ボタンをクリックします。

0
0 0
記事 Mihoko Iijima · 12月 24, 2024 3m read

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

イベントログの削除には、Ens.Util.LogクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

メッセージの削除には、2種類の方法があります。

1) 2022.1.2以降の導入されたマルチプロセスで削除する方法

Ens.Ens.Util.MessagePurgeクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

第3引数:1を指定(Completeではないメッセージの削除を防止するための指定)

第4引数:メッセージボディも一緒に削除する場合は1を指定

第5引数:デフォルトは500(秒)が設定されていますが、大量のメッセージをパージするとクリアされたビットマップの最適化に時間を要して最適化が完了しない場合があるため、大量削除の場合は 10000000000など大きな値を指定します。

2) Ens.MessageHeaderクラスのPurge()メソッドを使用する方法。

実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

第3引数:1を指定(Completeではないメッセージの削除を防止するための指定)

0
0 0