Lotus Notes/Domino 文書ロックロックの仕組仕組み FAQ 日本アイ ビー エム株式会社ソフトウェア事業 Lotus テクニカル セールス
文書ロックロックの仕組仕組み FAQ 1. 利用環境 3 1-1.R5 以前と Lotus Notes/Domino 6 以降の混在環境で ロックの機能は使えますか 3 1-2. 文書ロック機能は Web ブラウザからのアクセスの場合も利用できますか 4 2. 基本 6 2-1. ソフトロック / 文書ロック / 設計ロックの違いはなんですか 6 2-2. ロックされている文書に対して 他の人が編集や削除をしようとすると どのようなエラーメッセージが出ますか 7 2-3. ロック状態を管理するサーバーがあるのですか ある場合 だれがどのように設定するのですか 8 2-4. 複製 DB( ローカルを含む ) がある場合でもロックの機能は使えますか 9 2-5. ロックされている文書は ビュー上の編集もできませんか 10 2-6. ロック設定しても競合文書が起こる可能性はありますか 起こるとしたら どのような場合ですか 11 3. ロックの設定と解除の権限 12 3-1. ロックできる人を指定できますか 指定できる場合 どのような権限の人が指定できますか 12 3-2. ロックを強制的に解除する方法はありますか 解除できる場合 どのような権限の人が解除できますか 13 4. ロックの情報 14 4-1. 各文書内に ロック中かどうかの情報 ($ フィールド等 ) があるのですか 14 4-2. 指定の文書がロック中かどうかを識別する方法はありますか また いつから だれがロックしているかわかりますか 15 4-3. 文書内に ロックの更新履歴は残りますか 17 5. システム管理サーバー 18 5-1. ロックを管理するサーバータスクがあるのですか 18 5-2. どのサーバーがロックを管理しているのか だれでも知ることができるのですか 19 5-3. ロック対象の DB( 複製 DB を含む ) が載っていない Lotus Domino サーバーを ロックのシステム管理サーバー ( マスター ロックサーバー ) に指定できますか 20 5-4. ロックしようとしたとき システム管理サーバー ( マスターロックサーバー ) が停止していた場合は どうなりますか サーバ ーの回復を待つまで ロックの機能は使えないのですか 21 5-5. ロック後 編集中にシステム管理サーバー ( マスターロックサーバー ) が停止した場合 ロックした文書を保存できますか 22 5-6. ロック後 編集中にシステム管理サーバー ( マスターロックサーバー ) が停止した場合 他の人は同じ文書を編集できますか 23 6. 開発インタフェース 24 6-1. 設計の暫定ロックで 保存されなかった設計変更は後からメールで送られて来ますが どの程度の情報がメールに保存されますか 24 6-2. ロック関連の開発インタフェースには何がありますか 26 6-3. ロック中の文書を 開発インタフェースで編集しようとした場合 どのようなエラー処理をすべきですか 27 7. ローカル DB の文書のロック 28 7-1. ローカルレプリカ DB の文書をロックした場合 リモート環境にロックが反映するのは複製をするときですか それとも ネットワークに接続次第 自動的にロックが反映するのですか 28 7-2. ローカルレプリカ DB の文書をロックした場合 誰かが先にリモート環境の文書をロックしていたら ローカル DB の文書はどのようになりますか 29 7-3. ローカルレプリカ DB の文書をロックした時点で だれかが先にリモート環境の文書を更新済みだったら ローカル DB の文書はどのようになりますか 30 1
- 特記事項 - 本資料の記載内容は 正式な IBM のテストやレビューを受けておりません 内容について でき る限り正確を期すよう努めてはおりますが いかなる明示または暗黙の保証も責任も負いかねます 本 資料の情報は 使用先の責任において使用されるべきものであることを あらかじめご了承ください 掲載情報は不定期に変更されることもあります 他のメディア等に無断で転載する事はご遠慮くだ さい 本資料の著作権は日本アイ ビー エムにあります 非営利目的の個人利用の場合において 自 由に使用してもかまいませんが 営利目的の使用は禁止させていただきます IBM は IBM Corporation の商標 Lotus Lotus Domino Lotus Notes は IBM-Lotus の商標 その他 記載された社名および製品名は それぞれ各社の商標または登録商標です 2
はじめに当ガイドは Lotus Notes/Domino 6 から新規で追加された機能である文書のロックの機能について 一問一答形式で記述しています 1. 利用環境文書ロックの機能を利用するには 下記の環境が必要になります クライアント :Lotus Notes 6 以降サーバー :Lotus Domino 6 以降 1-1.R5 以前と Lotus Notes/Domino 6 以降の混在環境混在環境で ロックロックの機能機能は使えますか R5 以前のLotus NotesクライアントやLotus Dominoサーバーが混在している環境では ロックがLotus Notes/Domino 6から新規で追加された機能であるため ロックの機能は使えません また ロックに関する @ 式やLotusScriptも Lotus Notes/Domino 6で新規に追加された機能であるため R5のクライアントから実行しても機能しません ロックの機能を使用するにはLotus Notes/Domino 6 以降のサーバー クライアントが必要です R5 以前の Lotus Domino サーバーに Lotus Notes 6 以降のクライアントからアクセスする場合 Lotus Notes クライアントからアクセスして 文書のロックを許可 にチェックしても ロックが機能しません 手動で文書ロックを実行しようとすると 以下のエラーメッセージが返されます Lotus Domino 6 以降のサーバー上のDBに R5 以前のLotus Notesクライアントからアクセスする場合 Lotus Domino 6 以降のクライアントで文書をロックしていても R5 以前のクライアントからのアクセスではロックが機能しません また R5 以前のクライアントでは [ アクション ] に [ 文書のロック ] [ ロックの解除 ] が表示されません 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1はLotus Notes 6 以降のクライアント User2はR5 以前のクライアントを使用します 4. User1が文書を編集し User2が同じ文書の編集を試みます 3
1-2. 文書ロックロック機能は Web ブラウザからのからのアクセスアクセスの場合場合も利用利用できますか データベースのプロパティ [ 文書のロックを許可 ] にチェックしていても Webブラウザから使用する場合はロックが機能しません ただし WebブラウザとLotus Notesクライアントとの混在環境で Lotus Notesクライアント側でロック中の文書については Webブラウザからアクセスしてもロックされており 変更を保存できません 1 ソフトロック ( データベースのプロパティ [ 文書のロックを許可 ] にチェックがついていない場合 2-1. を参照 ) は 機能しません 2 以下のように LotusScript の Lock 関数で WebQueryOpen に記述して Web ブラウザで文書ロックすること は可能です 例 ) 1 WebQueryOpen に以下を記述します @Command([ToolsRunMacro]; "Lock") 2 以下の Lock エージェントを作成します ( エージェント -Lock) Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Set db = session.currentdatabase REM Exit if locking is not enabled If Not db.isdocumentlockingenabled Then Print "Document locking not enabled" Exit Sub End If REM Get selected document Set doc = session.documentcontext REM Lock the document REM Not locked if return is False or error is raised On Error Goto errh If doc.lock("inotes test/test", True) Then Print "Document locked" Else Print "Document NOT locked" End If Exit Sub errh: If Err() = lserr_notes_locked Then Print "Document NOT locked" Else Messagebox "Error " & Err() & ":" & Error(),, "Error" End If
Exit Sub End Sub 3 WebQuerySave では Unlock を記述できないため 以下のように Save のあとに Unlock を記述するようにしま す ( アクションボタン - 保存 ) @Command( [FileSave] ); @Command([ToolsRunMacro]; "Unlock") 4 以下の Unlock エージェントを作成します ( エージェント -Unlock) Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Set db = session.currentdatabase REM Exit if locking is not enabled If Not db.isdocumentlockingenabled Then Print "Document locking not enabled" Exit Sub End If REM Get selected document Dim doc As NotesDocument Set doc = session.documentcontext REM Unlock document REM Document is not unlocked if error is raised On Error Goto errh Call doc.unlock Print "Document unlocked" Exit Sub errh: Print "Document NOT unlocked" Exit Sub End Sub 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていること を確認します 3. User1 User2 とも Web ブラウザで同じ文書を編集します 4. 次に User1 が Lotus Notes クライアントで文書を編集します 5. User2 が Web ブラウザで User1 と同じ文書を編集します 5
2. 基本 2-1. ソフトロック / 文書ロック / 設計ロックロックの違いはなんですか ソフトロックと文書ロックは データベースの文書をロックします Lotus Dominoサーバーではソフトロックがデフォルトで 特に文書ロックを設定していなくても同一文書の編集はできません 但しビューからは編集可能なため 競合が発生する場合があります 設計ロックは データベースの設計要素をロックします 文書ロック / 設計ロックを設定する方法は以下の通りです - 文書 / 設計要素ごとに手動で設定 / 解除する - 文書 / 設計要素を編集すると自動でロックされ 編集を完了すると自動で解除される詳細については 以下の表を参照ください [ : ロックされる : 警告のみ : ロックされない ] 設定方法 ソフトロック デフォルト ( データベースのプロパティで [ 文書のロックを許可 ] にチェックしていない ) 文書ロック データベースのプロパティで [ 文書のロックを許可 ] にチェック - 文書を選択し手動でロックを設定する ([ 作成者 ] 以上 ) - 文書を編集すると自動でロックされる ([ 作成者 ] 以上 ) 設計ロック データベースのプロパティで [ 設計のロックを許可 ] にチェック - 設計要素を選択し手動でロックを設定する ([ 設計者 ] 以上 ) - 設計要素を編集すると自動でロックされる ([ 設計者 ] 以上 ) 解除方法 - [ 作成者 ][ 設計者 ] は 自分でロックした文書だけ手動で解除可能 [ 管理者 ] は すべての文書のロックを手動で解除可能 ロック中であるかどうか識別するする方法 システム管理管理サーバー ( マスターロックサーバー ) の指定 不要 - 文書に $Writers と $WritersDate フィールドが作成され 識別できる 必須 ( 有効でないとエラーメッセージで警告 ) 更新履歴 残らない 残らない ( ただし デザイン可 能 ) サーバー DB 上でのでの同一文書 ( 設計要素 ) アクセス サーバー DB 上でのでの同一文書 ( 設計要素 ) アクセス - ビューからから編集する場合 レプリカ DB での同一文書 ( 設計要素 ) アクセス レプリカ DB での同一文書 ( 設計要素 ) アクセス -オフラインフライン時 エラーメッセージが返され編集不可 編集 / 変更 / 保存可能 ( 競合発生の可能性あり ) 編集 / 変更 / 保存可能 ( 競合発生の可能性あり ) 編集 / 変更 / 保存可能 ( 競合発生の可能性あり ) エラーメッセージが返され編集不可 エラーメッセージが返され編集不可 エラーメッセージが返され編集不可 エラーメッセージが返される ( 編集はできる ) [ 設計者 ] は 自分でロックした設計要素だけ手動で解除可能 [ 管理者 ] は すべての設計要素のロックを手動で解除可能 錠のアイコンがワークペインに表示され 識別できる 必須 ( 有効でないとエラーメッセージで警告 ) 残らない エラーメッセージが返され編集不可 - エラーメッセージが返され編集不可 エラーメッセージが返される ( 編集はできる ) 6
2-2. ロックされているされている文書文書に対してして 他の人が編集編集や削除削除をしようとするとをしようとすると どのようなエラーメッセージエラーメッセージが出ますか ユーザーが文書をロック中 ( 編集中 ) に 他のユーザーが同じ文書にアクセスし編集しようとすると 以下のようなメッセージが返され編集モードになりません 従って 編集や削除を行うことができません 1 データベースのプロパティ [ 文書のロックを許可 ] にチェックしなくてもこのメッセージが表示される場合があります (=ソフトロック 2-1. を参照 ) 2 アクセス権限が [ 管理者 ] であれば 該当文書に対してアクションメニューからロック状態を解除することができます [ 設計者 ] は 自分でロックした設計要素だけ解除できます 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1が文書を作成し保存します 4. User1が作成した文書を編集モードにします 5. User1が編集中の文書にUser2がアクセスし 編集を試みます 7
2-3. ロック状態状態を管理管理するするサーバーサーバーがあるのですか ある場合場合 だれがどのように設定するのですか ロック状態を管理するには アクセス制御リスト (ACL) に定義されているシステム管理サーバー ( マスターロックサーバー ) が必要です システム管理サーバーを指定していないと データベースのプロパティで [ 文書ロックを許可 ] をチェックしても 以下のメッセージが返され文書ロックが有効になりません 1 文書ロックを有効にするには データベースのプロパティ [ 文書のロックを許可 ] にチェックする必要があります 2 データベースのプロパティ [ 文書のロックを許可 ] にチェックしていない場合 (=ソフトロック 2-1. を参照 ) では システム管理サーバーを指定しなくてもソフトロックが有効です システム管理サーバーの指定方法は以下のとおりです 1. データベースACLで自分に [ 管理者 ] のアクセス権を設定されていることを確認します 2. [ ファイル ] - [ データベース ] - [ アクセス制御 ] を選択します 3. [ 詳細 ] アイコンをクリックします 4. [ システム管理者サーバー ] の下にある [ サーバー ] を選択し リストからシステム管理サーバーを選択して [OK] をクリックします 8
2-4. 複製 DB( ローカルを含む ) がある場合場合でもでもロックロックの機能機能は使えますか 文書に対して [ 作成者 ] 以上のアクセス権があり データベースで文書のロックが有効な場合は 作業しているどのレプリカでも文書をロックできます 文書をロックすると 他のユーザーが別のレプリカで作業している場合でも その文書を同時に変更できないように以下のようなメッセージが表示されます 1 アクセス権限が [ 管理者 ] であれば 該当文書に対してアクションメニューからロック状態を解除することができます 2 以下のような場合には レプリカでのロックは機能しません -オフラインのレプリカDBで作業している場合ローカルレプリカから文書を開こうとすると以下のメッセージが表示されます - データベースのプロパティ [ 文書のロックを許可 ] にチェックしていない場合 (= ソフトロック 2-1. 参照 ) 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1が文書を作成し保存します 4. User2がレプリカDBを作成します User1が ( 別マシン上に ) レプリカDBを作成します 5. User1がレプリカDBから作成した文書を編集モードにします 6. User1 が編集中の文書に User2 が別のレプリカDB からアクセスし 編集を試みます 9
2-5. ロックックされているされている文書文書は ビュービュー上の編集編集もできませんか ユーザーが文書をロック中 ( 編集中 ) に 他のユーザーが同じ文書にアクセスしビュー上で編集しようとすると 以下のメッセージが返されビュー上での変更を保存できません 1 ビューからの編集を可能にするには ビューの列のプロパティで [ 編集可能列 ] を設定する必要があります (Lotus Domino Designer ヘルプを参照 ) 2 この現象は ビューから編集を行い保存しようとするタイミングで発生します 3 データベースのプロパティ [ 文書のロックを許可 ] にチェックしていない場合 (=ソフトロック 2-1. を参照 ) では ビュー上で変更を保存できます 1 ユーザーが文書をロック中 ( 編集中 ) に 他のユーザーがビューの列 (test1) から文書を編集 2 変更を保存 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバーが指定されていることを確認します 3. ビューでの編集が可能となるように ビューの列のプロパティで [ 編集可能列 ] の設定等を行います (Lotus Domino Designer ヘルプを参照 ) 4. User1が文書を作成し保存します 5. User1が作成した文書を編集モードにします 6. User1が編集中の文書にUser2がアクセスし ビュー上で編集を試みます 10
2-6. ロック設定設定してもしても競合文書競合文書が起こるこる可能性可能性はありますか 起こるとしたらこるとしたら どのような場合場合ですか オフラインのローカルレプリカDBでは ロック状態を管理するシステム管理サーバー ( マスターロックサーバー ) に接続できないためロックが機能しません ローカルレプリカDBから文書を開こうとすると以下のメッセージが表示され注意を促しますが そのまま操作を続ければ競合が発生する可能性があります 1 データベースのプロパティ [ 文書のロックを許可 ] にチェックしていない場合 (=ソフトロック 2-1. を参照 ) は 以下のような場合に競合が発生する可能性があります -レプリカDBでの同一文書アクセス( オンライン / オフライン時 ) -サーバー DB 上での同一文書アクセス ( ビューから編集する場合 ) 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバーが指定されていることを確認します 3. User1がローカルレプリカDBを作成します 4. ローカルレプリカDBが配置されているLotus Notesクライアントをオフラインにします 5. User1 がローカルレプリカDB から文書を編集モードにします 11
3. ロックの設定設定と解除解除の権限 3-1. ロックできるできる人を指定指定できますか 指定できるできる場合場合 どのようなどのような権限権限の人が指定できますか データベースのプロパティで 文書のロックを許可 にチェックしている場合は [ 作成者 ] 以上のアクセス権を持っているユーザーは文書をロックできます 1 アクセス権限が [ 管理者 ] であれば 該当文書に対してロック状態を解除することができます 他のアクセス権でも自分でロックした文書は解除することができます 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. 文書を選択し [ アクション ]-[ 文書のロック ] を選択します 12
3-2. ロックを強制的強制的に解除解除するする方法方法はありますか 解除できるできる場合場合 どのようなどのような権限の人が解除解除できますか データベースの [ 管理者 ] は 文書を選択し [ アクション ]-[ ロックの解除 ] を選択することで 文書ロックを解除できます ただし 他のアクセス権でも自分でロックした文書は解除することができます また LotusScript の Unlock メソッドを使用して ロックを解除することもできます 1 データベースの [ 管理者 ] が 他のユーザーがロック中の文書に対してロックを強制的に解除し 文書変更後保存した場合 競合が発生する可能性がありますので注意が必要です 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1を 管理者 User2を 作成者 に設定します 4. User2が作成した文書を編集モードにします 5. User2 が編集中の文書を選択して User1 は [ アクション ] - [ ロックの解除 ] を実行します 13
4. ロックの情報 4-1. 各文書内に ロックロック中かどうかのかどうかの情報 ($ フィールド等 ) があるのですか 文書ロック中の文書には $Writersフィールドと $WritersDateフィールドが作成されており これらのフィールドを使ってロック中であるかどうかを識別しています それぞれのフィールドには 以下の情報を含んでいます 文書ロックが解除されると $Writersフィールドと $WritersDateフィールドは文書から削除されます -$Writers 文書をロック中のユーザー名が含まれます -$WritersDate ロックが開始された時間が記録されます 1 データベースのプロパティ [ 文書のロックを許可 ] にチェックしない場合 (=ソフトロック 2-1. を参照 ) は $Writersフィールドと $WritersDateフィールドは作成されません 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1が文書を作成し保存します 4. User1が作成した文書を編集モードにします 5. User1 が編集中の文書に User2 がアクセスし 文書のプロパティを確認します 14
4-2. 指定の文書文書がロックロック中かどうかをかどうかを識別識別するする方法方法はありますか また いつから だれがだれがロッロックしているかわかりますか 文書ロック中の文書には $Writersフィールドと $WritersDateフィールドが作成されており これらのフィールドが文書に存在すればロック中であることがわかります 文書ロックが解除されると $Writersフィールドと $WritersDateフィールドは文書から削除されます この他 以下の LotusScript や @ 関数を使用してロック中かどうかを確認できます LockHolders プロパティ -LotusScript - 文書がロック中の場合 配列には文書をロック中のユーザー名が含まれます 文書は ユーザーまたは グループによってロックできます - 文書がロックされていない場合 配列には値が空の文字列 ("") となっている要素が 1 つ含まれます 例 ) 次のビューアクションは 現在の文書をロック中のユーザー名を表示します Sub Click(Source As Button) Dim session As New NotesSession Dim db As NotesDatabase Set db = session.currentdatabase REM Exit if locking is not enabled If Not db.isdocumentlockingenabled Then Print "Document locking not enabled" Exit Sub End If REM Get selected document Dim dc As NotesDocumentCollection Dim doc As NotesDocument Set dc = db.unprocesseddocuments Set doc = dc.getfirstdocument REM Display lock holders holders = doc.lockholders If holders(0) = "" Then 15
Messagebox "None",, "Lock holders" Else Forall h In holders msg$ = msg$ & h & Chr(13) End Forall Messagebox msg$,, "Lock holders" End If End Sub @DocLock([STATUS]) -@ 関数 - 現在の文書のロックの状態を示します 文書がロックされていない場合はヌルが返され ロックされている 場合は文書をロックしたユーザーの文字列リストが返されます 例 ) 文書をロックしたユーザーの文字列リストを表示します @Prompt([OK];"Checking document status";@doclock([status])) データベースのプロパティで 文書のロックを許可 にチェックがついていない場合は 以下のエラーが返さ れます 1 データベースのプロパティ [ 文書のロックを許可 ] にチェックしない場合 (= ソフトロック 2-1. を参照 ) は $Writers フィールドと $WritersDate フィールドは作成されません 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1が文書を作成し保存します 4. User1が作成した文書を編集モードにします 5. User1が編集中の文書にUser2がアクセスし 文書のプロパティを確認します 16
4-3. 文書内に ロックロックの更新履歴更新履歴は残りますか 文書ロック中は 文書内に $Writersフィールドと $WritersDateフィールドが作成され ロック中のユーザー名やロックが開始された時間が記録されています しかし 文書ロックが解除されると $Writersフィールドと $WritersDateフィールドが削除されてしまうため ロック状態の更新履歴は残りません 1 ただしロック操作の LotusScript や @ 関数を使用することで アプリケーション側で更新履歴を残すことは 可能です 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1が文書を作成し保存します 4. User1が作成した文書を編集モードにします 5. User1が編集中の文書にUser2がアクセスしロックされていることを確認します 6. User1はロックを解除し User2は文書のプロパティを確認します 17
5. システム管理管理サーバー 5-1. ロックを管理管理するするサーバータスクサーバータスクがあるのですか アクセス制御リスト (ACL) に定義されているシステム管理サーバー ( マスターロックサーバー ) 上の システム管理プロセス (adminp) というサーバータスクがロック状態を管理します システム管理サーバーを指定していないと データベースのプロパティで [ 文書ロックを許可 ] をチェックしても 以下のメッセージが返され文書ロックが有効になりません 1 文書ロックを有効にするには データベースのプロパティ [ 文書のロックを許可 ] にチェックする必要があります 2 データベースのプロパティ [ 文書のロックを許可 ] にチェックしていない場合 (=ソフトロック 2-1. を参照 ) では システム管理サーバーを指定しなくてもソフトロックが有効です システム管理サーバーの指定方法は以下のとおりです 1. データベースACLで自分に [ 管理者 ] のアクセス権を設定されていることを確認します 2. [ ファイル ] - [ データベース ] - [ アクセス制御 ] を選択します 3. [ 詳細 ] アイコンをクリックします 4. [ システム管理サーバー ] の下にある [ サーバー ] を選択し リストからシステム管理サーバーを選択して [OK] をクリックします 18
5-2. どのサーバーサーバーがロックロックを管理管理しているのかしているのか だれでもだれでも知ることができるのですか システム管理サーバー ( マスターロックサーバー ) は アクセス制御リストの [ 詳細 ] タグから確認できます 確認するには データベースに対して [ 読者 ] 以上の権限が必要です 1. [ ファイル ] - [ データベース ] - [ アクセス制御 ] を選択します 2. [ 詳細 ] アイコンをクリックします 3. [ システム管理サーバー ] の下にある [ サーバー ] のサーバー名を確認します 19
5-3. ロック対象対象の DB( 複製 DB を含む ) が載っていない Lotus Domino サーバーを ロックのシステムシステム管理管理サーバー ( マスターロックサーバー ) に指定指定できますか 対象のDB( 複製 DBを含む ) が載っていないLotus Dominoサーバーを ロックのシステム管理サーバーに指定することはできません DBから文書を編集しようとすると以下のメッセージが表示され注意を促しますが そのまま操作を続ければ競合が発生する可能性があります 20
5-4. ロックしようとしたときしようとしたとき システムシステム管理管理サーバー ( マスターロックサーバー ) が停止していたしていた場合場合は どうなりますか サーバーの回復回復を待つまでつまで ロックロックの機能機能は使えないのですか ロック状態を管理するシステム管理サーバーが停止している場合はロックが機能しません DBから文書を編集しようとすると以下のメッセージが表示され注意を促しますが そのまま操作を続ければ競合が発生する可能性があります 21
5-5. ロック後 編集中編集中にシステムシステム管理管理サーサーバー ( マスターロックサーバー ) が停止停止した場合 ロックロックしたした文書文書を保存保存できますか ロック後 編集中にシステム管理サーバーが停止した場合でも ロックした文書は保存できます ただし 変更を保存後に編集を完了しても ロックが自動で解除されなくなることがあります ロックが解除されない場合は手動で解除してください 22
5-6. ロック後 編集中編集中にシステムシステム管理管理サーサーバー ( マスターロックサーバー ) が停止停止した場合 他の人は同じ文書文書を編集編集できますか ロック後 編集中にシステム管理サーバーが停止した場合でも 他のユーザーは同じ文書を編集できません ただし 以下のようにメッセージ中に文書ロック中のユーザー名が表示されなくなるなどの不具合が生じる可能性があります 23
6. 開発インタフェース 6-1. 設計の暫定暫定ロックロックで 保存保存されなかったされなかった設計変更設計変更は後からからメールメールで送られて来ますがますが どのどの程度程度の情報情報がメールメールに保存保存されますか ローカルまたはオフラインで設計の暫定ロックを行い その後接続して複製すると システム管理サーバー ( マスターロックサーバー ) は暫定ロックを真のロックに変換しようとします そのとき処理が正常に完了しないと メールが送信されますが 主な送信内容は以下の通りです -メールのSubjectには 保存できなかった編集内容が記述されます [ ローカルレプリカでフォームをロックし サーバー DBへの複製がうまくいかなかった場合のメール内容 ] - メールの Body には 文書リンクが添付されており リンクを開くと保存されなかった設計情報の名前のつい たイメージ文書が開かれます [ リンクされているフォームのイメージ ] 1 ローカルまたはオフラインで設計の暫定ロックを行う際に 以下のメッセージが表示されます 1. データベースのプロパティ [ 設計のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバーが指定されていることを確認します 3. Lotus Notesクライアントをオフラインにします 24
4. ローカルレプリカ DB で フォーム設計をロックします 5. サーバー上 DB のシステム管理サーバーを なし にします 6. クライアントをオンラインにしてローカルレプリカ DB で複製を実行します 25
6-2. ロック関連関連の開発開発インタフェースインタフェースにはには何がありますか ロック関連の開発インタフェースには 以下のロータススクリプト @ 関数があります LotusScript(NotesDocument NotesAgent NotesForm NotesView クラス ) -LockHolders -lock -LockProvisional -Unlock @ 関数 -@DocLock ( ただし この関数は Web アプリケーションでは使用できません ) 1 詳細は Lotus Domino Designer ヘルプを参照ください 26
6-3. ロック中の文書文書を 開発開発インタフェースインタフェースで編集編集しようとしたしようとした場合場合 どのようなどのようなエラー処理処理をすべきですか データベースのプロパティで 文書のロックを許可 にチェックがついていない場合は ロック関連のロータススクリプトの関数を使用すると ("") が返されます そのため 以下のような処理が必要です 例 ) ロック関連の LotusScript 関数を使用している場合のエラー処理 REM REM Exit if locking is not enabled If Not db.isdocumentlockingenabled Then Print "Document locking not enabled" Exit Sub End If @ 関数では データベースのプロパティで 文書のロックを許可 にチェックがついていない場合は 以下のエラ ーが返されます 対応方法として 以下のように処理を行います 例 ) ロック関連の @ 関数を使用している場合のエラー処理 @If( @DocLock([LockingEnabled]) = 1;@Prompt([Ok];"Checking document status";@doclock([status]));@prompt([ok];"checking document status";" ロックされている文書はありません ")) 27
7. ローカル DB の文書文書のロック 7-1. ローカルレプリカ DB の文書文書をロックロックした場合場合 リモートリモート環境環境にロックロックが反映反映するのは複製複製をするときですか それとも ネットワークネットワークに接続次第接続次第 自動的自動的にロックロックが反映するのですか 文書ロックをかけたローカルレプリカDBがリモートサーバーにオンラインで接続されている場合は 自動的にロックがサーバー DBへ反映されます 従って 他のユーザーはロック中の文書を編集できません ローカルレプリカDBがオフラインの場合は 暫定ロックがかかります リモートサーバーに接続次第反映されます (6-1. 参照 ) 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1が文書を作成し保存します 4. User1がローカルレプリカDBで 作成した文書を編集モードにします 5. User1 が編集中の文書に User2 がアクセスし 編集を試みます 28
7-2. ローカルレプリカ DB の文書文書をロックロックしたした場合場合 誰かがかが先にリモートリモート環境環境の文書文書をロックしていたらしていたら ローカル DB の文書文書はどのようになりますか ローカルレプリカDBがリモートサーバーにオンラインで接続されている場合は サーバー DB 上のロックが自動的にローカルレプリカDBへ反映されます 従って リモート環境でロック中の文書をローカルレプリカ上で編集することができません 1 ローカルレプリカDBがオフラインの場合は 暫定ロックがかかります リモートサーバーに接続次第反映されます (6-1. 参照 ) 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1が文書を作成し保存します 4. User1がサーバー DBで 作成した文書を編集モードにします 5. User1 が編集中の文書に User2 がローカルレプリカDB よりアクセスし 編集を試みます 29
7-3. ローカルレプリカ DB の文書文書をロックロックしたした時点時点で だれかがだれかが先にリモートリモート環境環境の文書を更新済更新済みだったらみだったら ローカル DB の文書文書はどのようになりますか サーバー DBの文書を更新後 ローカルレプリカDBの同じ文書 ( 更新前 ) をロックすると サーバー DBの文書 ( 更新後 ) もロックされます その後 ローカルレプリカDBの文書を更新して複製をとると ローカルDBでの変更が最新の情報として反映されます ( サーバー文書の更新に上書きされます ) 1. データベースのプロパティ [ 文書のロックを許可 ] にチェックします 2. アクセス制御リストの詳細タグで システム管理サーバー ( マスターロックサーバー ) が指定されていることを確認します 3. User1がフォームで文書を作成し保存します 4. User2がローカルレプリカDBを更新します User1がサーバー DBの文書を更新して保存します 5. User1 が編集中の文書に User2 がローカルレプリカDB よりアクセスし 編集を試みます 30