プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









ジャーナリングを停止して処理の高速化

Speed up by Journal Off.

ジャーナリングとは、データベースへ書き込む時にその内容を別のファイル「ジャーナルファイル」にも書き込むことです。
ジャーナリングは

  • 障害発生時に復旧する
  • トランザクションのロールバックを行う
  • シャドウイングで他のマシンに変更を反映する
時に使用されます。
ジャーナリングについてはSymposia2013の「Caché ジャーナルについて」にまとめられています。

このジャーナリングを停止すると、ジャーナルファイルへの書き込みが行われなくなるのでデータベースの書き込み処理が高速化されます。
ジャーナリングを停止することで、
  • 障害発生時に復旧する
  • トランザクションのロールバックを行う
  • シャドウイングで他のマシンに変更を反映する
これらの処理が行えなくなる危険性がありますが、この危険性を許容できる状況下で大量のデータを書き込むルーチンの先頭に入れることで高速化することができます。

自プロセスでジャーナリングを無効にする

ジャーナリングを停止するには
Do DISABLE^%NOJRN
コマンドを入力します。
これによりこのコマンドを実行したプロセスでジャーナリングが停止されます。
他のプロセスでは、これまでどおりジャーナリングを行いますので注意してください。

ジャーナリングを再開するには
Do ENABLE^%NOJRN
コマンドを実行します。
これによりこのコマンドを実行したプロセスでジャーナリングが再開されます。

ジャーナリングが無効になっていることを確認

以下のような処理を実行します。
USER>S ^A=1

USER>S ^A=2

USER>Do DISABLE^%NOJRN

USER>S ^A=3

USER>S ^A=4

USER>Do ENABLE^%NOJRN

USER>S ^A=5

USER>S ^A=6
システム管理ポータルの、システムオペレーション⇒ジャーナル⇒(直近の)参照 から ^Aの行を見つけます。


行左側の数字のリンクをそれぞれクリックすると、セットした内容が確認できます。


このように Disable 〜 Enable の間に行った、3と4のセットはジャーナルされていないことが確認できました。

システム全体でジャーナリングを無効にする

上記方法では、コマンドを実行したプロセスでのみジャーナリングが停止されます。
システム全体のジャーナリングを停止するには、%SYSネームスペースで
D ^JRNSTOP
を、再開するには
D ^JRNSTART
を実行してください。




2015/12/28Update