神戸は先ほどから雨が降り始めました。おそらくサクラも散ってしまうことでしょう。
個人的には土曜日に造幣局の通り抜けに行けましたので、結構満足してます!
それはそうと、先週からノーツコンソーシアムのさまざまな研究会がスタートしています。
私が参加しているのは、【ザ・ノーツ研究会】と【大阪研究会】です。
研究会の詳細は省略させて頂きますが、会員外の方でも見学できるかと思いますので、ご興味ある研究会ございましたら、事務局までお問い合わせください。
さて本日は以前から個人的に疑問であった「文書のロック」について、少し検証してみましたので報告させて頂きます。
「文書のロック」は、データベースのプロパティで設定可能な項目で、複数人で使用するようなデータベースで、ひとりが使用していると排他処理されるという機能になります。
ノーツクライアントですと、他の方が編集モードで開いていると以下のようなダイアログが表示され、編集モードに移ることができません。
私の疑問であったのは、ブラウザとノーツクライアントでどのような挙動をするのかという点になります。
それでは実際のテストです。
先日「既存アプリの最短Xpages化」でご紹介しました日報アプリに少し手を加え、ビューから文書を開いた際に
ターゲット文書:文書の編集
とし、フォームに「保存」ボタンを配置したものを使用致します。
テストの前に、それぞれロックされていない状態での編集に問題ないことは確認しました。
テスト1:ノーツクライアントで「編集モード」で開いた文書をブラウザの編集モードで開くことができるか。
結論は開くことができました。
テスト2:テスト1でノーツクライアントで編集保存後、ブラウザで編集保存するとどうなるか。
見事、【競合文書】になりました。
テスト3:逆にブラウザで編集保存後、ノーツクライアントで編集保存するとどうなるか。
こちらはブラウザで保存しようとすると、下記のようなエラーが表示されました。
もちろんノーツクライアント側のロックを解除すると、問題なく保存することができました。
テスト4:ブラウザで編集モードで開いた文書をノーツクライアントで開くことができるか。
こちらも開くことはできました。
テスト5:テスト4でノーツクライアントで編集保存後、ブラウザで編集保存するとどうなるか。
テスト2同様、【競合文書】ができました。
テスト6:逆にブラウザで編集保存後、ノーツクライアントで編集保存するとどうなるか。
こちらは先と違い、【競合文書】ができました。
だらだらと書きましたが、まとめると
●いずれも同時に編集モードで開くことは可能である。
●ノーツクライアントが先にロックした場合
・ノーツクライアントが先に保存 ⇒ 競合文書ができる
・ブラウザが先に保存 ⇒ 予期しないエラーが出る
●ブラウザが先にロックした場合
・ノーツクライアントが先に保存 ⇒ 競合文書ができる
・ブラウザが先に保存 ⇒ 競合文書ができる
となります。
結論だけ見ると、想像した通りの結果ではないかと感じました。
個人的には編集モードに入る手前で止まってくれると嬉しかったのですが、そう甘くはないようです。
但し、条件がはっきりしましたので、ノーツクライアントとブラウザ両方でアクセスするようなアプリケーションを稼動させる場合のヒントにはなったかと思います。
なお文書ロックに関しては、日本IBM様サイトにて【Lotus Notes/Domino 文書ロックの仕組みFAQ】として詳しく紹介されておりますので、参考になさってください。
どういう理由か検証していませんが、ロックが解除されないという事例がありました。
その際の対処方などもこちらに記載されております。
またXpagesでの設定事例については、IBMチャンピオンである御代様のブログでも、【XPagesで文書のロックをやってみよう!】にて紹介がございますので、こちらもご覧ください。
最後までお付き合い、ありがとうございました。