Lotus Notes/Domino (R) をこよなく愛して。。。。

ようこそ、Notes/Domino ファン & ブロガーのみなさん !


【ご注意】 このブログはビジネスに活用いただくためのものですので、以下の点を守ってご利用願います。


1. 他社あるいは他人への誹謗中傷のコメントはご遠慮ください。

2. コメントはビジネスとして問題のない言葉、表現を使ってください。

3. Webで一般公開されていない、具体的な個人や法人を特定するコメントはご遠慮ください。

4. 個人情報の記載は行わないでください。


上記を守られないコメントは、こちらの判断で削除させていただきますのでご了承願います。


尚、このサイトの掲載内容は私自身の見解であり、メーカーとは全く関係はありません。

また、メーカーのビジネスに利害を及ぼすために記載している訳ではありません。


ここに記載されている内容は、私自身の経験からの記載であり、内容が正確でない場合もあることをご理解の上、ご利用願います。


ご利用に際しては、左側のフレームに記載しております【注】をご一読の上、利用条件を守ってご利用ください。

1 | 2 | 3 | 4 | 5 | 最初次のページへ >>
February 18, 2019

ND V10で実装されたScheduled Messageを試してみよう! -1-

テーマ:Notes/Domino 10.x

Notes/Domino V10では待望のMail予約送信機能が実装されました。

 

残念ながら、現時点ではNotes ClientのみSupportするとのことで、iNotesやTravelerからの利用は出来ませんが、他社のMailerで実装されている予約送信機能が実装されたことは非常にありがたいことです。

 

今回は、このMail予約送信機能を試してみたいと思います。

 

Webでこの新機能の記述を見ると、Defaultで有効化されており、利用できるとの記述になっています。

逆に無効にする場合は、Administratorが新機能サポートを無効に設定する必要があるとのことです。

 

では、早速、評価環境のAdministrator IDのMailファイルを開き、新規メールを作成してみます。

Notes Client Helpによると、Delivery Optionsの項目に配信日時の指定が可能との記述がありますが、Delivery OptionsのDialogを開いてもそのような設定は一切存在しません。

 

 

 

Mail TemplateがV10であることが前提になっていますが、導入時に作成されたAdministratorの場合は有効になっていないのか?と思い、新規にUserを作成してみても、状況は同じでした。

 

では、この新機能はどうやったら利用できるようになるのでしょうか?

 

先ずは、Domino DesignerでDelivery OptionsのDialogを出している(Delivery Options) Subformを調べてみると、確かに予約配信設定のFieldは存在しますが、非表示式に以下の式が設定されています。

 

@GetProfileField("CalendarProfile"; "ScheduledEmailUIEnabled") != "1"

 

つまり、Mail Preferenceの"ScheduledEmailUIEnabled" Fieldに"1"が設定されていないと、予約送信指定Fieldは表示されないのです。

 

($Inbox) FolderのActionに以下の式を記述してProfile Fieldを確認すると、何も設定がされていないことが分かりました。

 

@Prompt([Ok]; "ScheduledEmailUIEnabled"; @GetProfileField("CalendarProfile"; "ScheduledEmailUIEnabled"))

 

これでは、予約送信機能は使えなくて当然です。

 

何故、このようになっているのか?は別途調査したいと思いますが、今回は新機能を試すために、Profile Fieldを強制的にSetすることにします。

($Inbox) FolderのActionに以下の式を記述してProfile Fieldを設定すると、Delivery Options Dialogに設定項目が表示されました。

 

@SetProfileField("CalendarProfile"; "ScheduledEmailUIEnabled"; "1")

 

 

これでようやく新機能を試すことができます。

Defaultで有効になっているという記述がされているこの新機能ですが、設定が行われていないというのは非常に気になります。

この新機能の設定に関しては、別途調査することにして、新機能の動作検証を行っていきたいと思います。

 

今回は、Notes/Domino V10で実装されたMail予約送信機能のMail Fileでの有効化を行いました(今回の処置が正しい処理なのかは不明です)。

次回は、実際にこの新機能でMail送信を行い試してみたいと思います。

 

<続く>

 

 

February 12, 2019

ND V9 FP8で実装されたNIFNSFを試してみよう! -6-

テーマ:Notes/Domino 10.x

<話題の履歴>

ND V9 FP8で実装されたNIFNSFを試してみよう! -5-

ND V9 FP8で実装されたNIFNSFを試してみよう! -4-

ND V9 FP8で実装されたNIFNSFを試してみよう! -3-

ND V9 FP8で実装されたNIFNSFを試してみよう! -2-

ND V9 FP8で実装されたNIFNSFを試してみよう! -1-

 

前回は、Backup/RestoreやRecoveryについて考慮点を考えてみました。

今回は、NIFNSFにより、View Index構築のPerformanceは良くなるのか?を見てみたいと思います。

 

NIFNSFは最初に紹介したようにNotes/Domino 9.0.1 FP8から搭載された新機能ですが、Daniel Nashed's Blogの記事によると、以下のように書かれており、それ程Performanceは良い物ではなかったようです。

 

3. Performance

NIFNSF is intended to deliver better performance than having all data in a single NSF file.

There is a current performance issue. For mail databases there should not be big difference.
But for more complex views in applications the performance with NIFNSF might be not as good as without it.
Tests have shown that it can take double the time.

There is a pending fix that might be delivered with an IF for FP8 which should bring back the performance to almost the same as without NIFNSF.

And for FP9 there is optimization planned to have better performance for concurrent operations. Those changes did not make it into FP8.

 

しかしながら、Knowledge Centerには未だに以下のように書かれている訳です。

 

この機能は、大きなデータベースの場合に役立つものであり、以下の利点があります。

   ・ 64 GB の上限に達しないように、データベースファイルのサイズを小さくする。
   ・ データベースのバックアップとリストアの高速化。
   ・ データベースとビューへの同時アクセスを可能にすることによるパフォーマンスの向上。

Transaction Logを有効化しないと利用できないNIFNSFはTransaction Logに保存された文書から、文書を格納するNSFファイルとView Indexを格納するNDXファイルの両方に同時に書き込めるために、Performanceは向上するという理屈なのだと思いますが、USの技術者の実験結果では、本当に複雑なViewを持ったDBの場合、PerformanceはNIFNSFの方が2倍も劣化したとの報告がある訳です。

 

特に、Daniel Nashed's Blogの記事ではMail DBではPerformanceに大差はないとしていますので、評価環境でPerformanceの違いを検証するのは困難かも知れません。

 

今回は比較的Viewの数が多いnames.nsfをCopyしたDBを使って試してみることにしますが、評価環境ですのでServer文書、Person文書が1文書、それ以外は認証文書などで780文書と文書数は極めて少ない状態です。

まずは、NIFNSFを有効化しない状態で、Viewの再構築を行ってみます。

 

load updall -R nifnsf_test\test_names.nsf
[0CF0:004A-0C64] 2019/01/24 17:03:45   Remote console command issued by Administrator/Lotus: load updall -R nifnsf_test\test_names.nsf
[0D18:0002-0380] 2019/01/24 17:03:46   Index update process started:  -R nifnsf_test\test_names.nsf
[0D18:0002-0380] 2019/01/24 17:03:46   Updating views in C:\IBM\Domino\Data\nifnsf_test\test_names.nsf
[0D18:0002-0380] 2019/01/24 17:03:46   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($AccountsByType)')
[0D18:0002-0380] 2019/01/24 17:03:46   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Accounts)')
[0D18:0002-0380] 2019/01/24 17:03:46   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Adminp)')
[0D18:0002-0380] 2019/01/24 17:03:47   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Certifiers)')
[0D18:0002-0380] 2019/01/24 17:03:47   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Clusters)')
[0D18:0002-0380] 2019/01/24 17:03:47   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Connections)')
[0D18:0002-0380] 2019/01/24 17:03:47   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($CrossCertByName)')
[0D18:0002-0380] 2019/01/24 17:03:47   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($CrossCertByRoot)')
[0D18:0002-0380] 2019/01/24 17:03:48   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Domains)')
[0D18:0002-0380] 2019/01/24 17:03:48   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Holidays)')
[0D18:0002-0380] 2019/01/24 17:03:48   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Locations)')
[0D18:0002-0380] 2019/01/24 17:03:48   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($MailGroups)')
[0D18:0002-0380] 2019/01/24 17:03:48   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Networks)')
[0D18:0002-0380] 2019/01/24 17:03:49   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($PeopleGroupsFlat)')
[0D18:0002-0380] 2019/01/24 17:03:49   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Profiles)')
[0D18:0002-0380] 2019/01/24 17:03:49   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Programs)')
[0D18:0002-0380] 2019/01/24 17:03:49   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($ServerAccess)')
[0D18:0002-0380] 2019/01/24 17:03:49   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($ServerConfig)')
[0D18:0002-0380] 2019/01/24 17:03:50   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($ServersLookup)')
[0D18:0002-0380] 2019/01/24 17:03:50   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Servers)')
[0D18:0002-0380] 2019/01/24 17:03:50   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Users)')
[0D18:0002-0380] 2019/01/24 17:03:50   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($vwServersByMajVer) $vwServers')
[0D18:0002-0380] 2019/01/24 17:03:50   Index update process shutdown

5秒程度で終了すると言う結果です。

 

次にNIFNSFを有効化して同様に試します。

 

load updall -R nifnsf_test\test_names.nsf
[0CF0:004A-06BC] 2019/01/24 17:06:13   Remote console command issued by Administrator/Lotus: load updall -R nifnsf_test\test_names.nsf
[122C:0002-1308] 2019/01/24 17:06:13   Index update process started:  -R nifnsf_test\test_names.nsf
[122C:0002-1308] 2019/01/24 17:06:13   Updating views in C:\IBM\Domino\Data\nifnsf_test\test_names.nsf
[122C:0002-1308] 2019/01/24 17:06:13   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($AccountsByType)')
[122C:0002-1308] 2019/01/24 17:06:13   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Accounts)')
[122C:0002-1308] 2019/01/24 17:06:13   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Adminp)')
[122C:0002-1308] 2019/01/24 17:06:13   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Certifiers)')
[122C:0002-1308] 2019/01/24 17:06:14   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Clusters)')
[122C:0002-1308] 2019/01/24 17:06:14   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Connections)')
[122C:0002-1308] 2019/01/24 17:06:14   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($CrossCertByName)')
[122C:0002-1308] 2019/01/24 17:06:14   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($CrossCertByRoot)')
[122C:0002-1308] 2019/01/24 17:06:15   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Domains)')
[122C:0002-1308] 2019/01/24 17:06:15   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Holidays)')
[122C:0002-1308] 2019/01/24 17:06:15   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Locations)')
[122C:0002-1308] 2019/01/24 17:06:15   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($MailGroups)')
[122C:0002-1308] 2019/01/24 17:06:15   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Networks)')
[122C:0002-1308] 2019/01/24 17:06:16   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($PeopleGroupsFlat)')
[122C:0002-1308] 2019/01/24 17:06:16   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Profiles)')
[122C:0002-1308] 2019/01/24 17:06:16   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Programs)')
[122C:0002-1308] 2019/01/24 17:06:16   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($ServerAccess)')
[122C:0002-1308] 2019/01/24 17:06:16   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($ServerConfig)')
[122C:0002-1308] 2019/01/24 17:06:16   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($ServersLookup)')
[122C:0002-1308] 2019/01/24 17:06:17   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Servers)')
[122C:0002-1308] 2019/01/24 17:06:17   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($Users)')
[122C:0002-1308] 2019/01/24 17:06:17   Informational, rebuilding view - user specified REBUILD (reading C:\IBM\Domino\Data\nifnsf_test\test_names.nsf view note Title:'($vwServersByMajVer) $vwServers')
[122C:0002-1308] 2019/01/24 17:06:18   Index update process shutdown

こちらは6秒程度という結果で、大差はありませんが、NIFNSFを有効化した場合の方が若干遅いという結果です。

このログの結果だと、Performanceを比較することは困難なようです。

 

もう少し詳しく動作を見ることは出来ないのでしょうか?

Notes/Dominoには、以前もこのBlogで紹介したと思いますが、NRPC Traceという機能があり、NSFに対するNRPCの動作のLogを取得する機能があります。

Notes ClientからのNRPCを調査する場合は、Client_Clock=1を設定すると取得できます。

Domino Serverの場合も、Server_Clock=1を設定することで、Server内でのNRPCの動作を記録することができ、Console Logにその結果が記録されます。

 

今回はこの機能を使って、動作を比較してみたいと思います。

 

まず、names.nsfをCopyしたDBを2個作成し、NIFNSFを有効化したものと無効化した物を用意します。

View Indexは直ぐには作成されないため、Updall -Rを両方のDBに発行し、Indexを生成します。

以下のようにView Indexが作成されます。

 

 

Administratorから見ると、若干Logicalファイルサイズが異なりますが、ほぼ同等と考えて良いかと思います。

 

 

次にServer Consoleから、set config Server_Clock=1 を発行してNRPC Trace機能を有効にします。

これで準備は整いました。

ここで、両方のDBに対して、Updall -Rを再度発行してみます。

当然ですが、Notes Clientからの要求ではありませんので、NRPC Commandの処理ログは記録されません。

 

では、Notes Clientからこれらの二つのDBに文書を作成して、Viewを更新する簡単なProgramを書いて試してみることにします。

Codeは簡単なもので、以下のようにGroup文書を作成して、Groups Viewを更新すると言うものです。

 

Sub Initialize
    Dim ss As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim File(1) As String
    Dim i As Integer

    Const SrvName = "Domino10Srv/Lotus"
    File(0) = "nifnsf_perf\names_nifnsf_off.nsf"
    File(1) = "nifnsf_perf\names_nifnsf_on.nsf"

    For i = 0 To 1
        Set db = ss.Getdatabase(SrvName, File(i), False)
        Set doc = db.Createdocument()
        doc.Form = "Group"
        doc.DocumentAccess = "[GroupModifier]"
        doc.GroupType = "0"
        doc.ListName = "TestGroup"
        doc.Type = "Group"
        Call doc.save(True,False,False)
        Set view = db.Getview("Groups")
        Call view.Refresh()
        Set db = ss.Getdatabase(SrvName, "names.nsf", False)
        Sleep(10)
    Next    
End Sub

 

Programの最後でnames.nsfを開いているのは、テスト用のDBをCloseさせて、二つのDBへのNRPCが同等になるようにするためです。

また、Console Logで判断が付きやすくするため、10秒間のSleepを入れています(Clientで実行しているので、PrintでMessageを出してもClient側に記録されるためです)。

このProgramを実行した結果、以下のようなLogになりました。

 

【NIFNSFが無効なDB】

[0CF0:004A-046C] 2019/01/26 16:33:52 277270484 ms 'GET_DBINFO'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 16
[0CF0:004A-046C] 2019/01/26 16:33:52 277270484 ms 'FINDDESIGN_NOTES'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 16
[0CF0:004A-046C] 2019/01/26 16:33:52 277270484 ms 'OPEN_NOTE'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 45214
[0CF0:004A-046C] 2019/01/26 16:33:52 277270484 ms 'ISDB2_RQST'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 16
2019/01/26 16:33:53 277270500 ms 'OPEN_COLLECTION'  218 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 34
[0CF0:004A-05CC] 2019/01/26 16:33:53 277270718 ms 'UPDATE_COLLECTION'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 12
[0CF0:004A-05CC] 2019/01/26 16:33:53 277270750 ms 'OPEN_NOTE'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 828
[0CF0:004A-05CC] 2019/01/26 16:33:53 277270750 ms 'CLOSE_COLLECTION'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 0
[0CF0:004A-05CC] 2019/01/26 16:33:53 277270750 ms 'CLOSE_DB'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 0

【NIFNSFが有効なDB】
[0CF0:004A-1290] 2019/01/26 16:34:03 277281062 ms 'GET_DBINFO'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 16
[0CF0:004A-0E70] 2019/01/26 16:34:03 277281062 ms 'FINDDESIGN_NOTES'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 16
[0CF0:004A-1290] 2019/01/26 16:34:03 277281062 ms 'OPEN_NOTE'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 45214
[0CF0:004A-1290] 2019/01/26 16:34:03 277281093 ms 'ISDB2_RQST'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 16
2019/01/26 16:34:03 277281093 ms 'OPEN_COLLECTION'  235 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 34
[0CF0:004A-1250] 2019/01/26 16:34:03 277281328 ms 'UPDATE_COLLECTION'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 12
[0CF0:004A-1250] 2019/01/26 16:34:03 277281375 ms 'OPEN_NOTE'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 828
[0CF0:004A-1290] 2019/01/26 16:34:03 277281375 ms 'CLOSE_COLLECTION'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 0
[0CF0:004A-1290] 2019/01/26 16:34:03 277281375 ms 'CLOSE_DB'  0 ms (0 ms NETIO) TCPIP 009C1BDA Rcvd 0 Sent 0

 

NRPC CommandのServer側の処理でも、NIFNSFファイルへの処理は透過的に行われていて、NRPC Command処理に違いは見られませんが、View Indexを開く処理(OPEN_COLLECTION)に少しだけ時間が多く掛かっているように見えます。

何回か実行してみましたが、NIFNSF DBを開く処理があるため、数十msの遅延があるようです。

今回は評価用の単純なDBでの測定ですので、文書数も少なく、View Indexサイズも小さいのでView Indexの更新処理(UPDATE_COLLECTION)がどちらも0msで終わっていますが、もし、NIFNSFを有効化したことにより、Index更新処理が効率良く行われるようになるのであれば、効果があるのかも知れません。

また、比較としては、NIFNSFの前提となっているTransaction Loggingを無効化した場合も比較しなければいけないですが、今回の検証から違いを明確に把握するのは困難だと思われますので割愛させて頂きます。

 

このシリーズでは、Notes/Domino FP8で搭載されたNIFNSFの機能の検証を行いましたが、私の感想としては、急いで運用に載せるだけの効果は期待できないのではないか?というのが正直なところです。

 

<終わり>

 

February 07, 2019

ND V9 FP8で実装されたNIFNSFを試してみよう! -5-

テーマ:Notes/Domino 10.x

<話題の履歴>

ND V9 FP8で実装されたNIFNSFを試してみよう! -4-

ND V9 FP8で実装されたNIFNSFを試してみよう! -3-

ND V9 FP8で実装されたNIFNSFを試してみよう! -2-

ND V9 FP8で実装されたNIFNSFを試してみよう! -1-

 

前回は、NIFNSFのOn/Offに関して、運用面で考えてみました。

今回も、運用の観点で考慮点を考えてみたいと思います。

 

運用していて偶にあることですが、担当者がNDXファイルを削除してしまうということもあるかも知れません。

では、NDXファイルは削除できるのでしょうか?


まず、Domino AdministratorでAll File Typesを選んで表示してみても、NDXファイルはリストされることはありません。

詰まり、Administratorから運用管理している限り、UIから削除することは出来なくなっています。

 

 

しかし、Explorerから削除してしまうこともあるかも知れませんが、Explorerからでも、常にDomino Serverがファイルを開いている状態になっているため、簡単には消すことはできません(これは通常のDBでも同じです)。

消す方法は、Server Consoleからdbc flushを発行して、DB Cacheを無効にしてからExplorerで削除することですが、そこまでする人はいないでしょう。

 

 

当然のことながら、元のDBを削除すると、NDXファイルも同時に削除されます。

 

では、NDXファイルのみ削除されてしまったDBは一体どうなるのでしょうか?

何と、DB自体が無いと言うErrorになり、DBが開けなくなってしまいました。

 

 

NDXファイルのみが削除されると、NIFNSFが有効化されたNSFファイル自体も正常に認識されなくなるということです。

しかし、このまま暫く放置しておくと、Recovery Mangerが自動的に修復してくれますが、修復までには時間が掛かってしまいます(今回の場合は7分近く掛かっています)ので、間違えて削除してしまうようなことが無いように気を付けた方が良さそうです。

 

2019/01/23 21:43:11   Remote console command issued by Administrator/Lotus: dbc f
> dbc f
2019/01/23 21:49:50   Recovery Manager: Assigning new DBIID for C:\IBM\Domino\Data\nifnsf_test\No_Design_nsf.ndx (need new backup for media recovery).

 

つまり、このRecovery機能により、NSFファイルのみBackupしておけば、NSFファイルをServerにOS CopyでRestoreするだけで、NDXファイルも生成されてRecoveryが完了するため、Backup容量が従来より少なくて済むということです。

 

私が試す限りは、OS CopyでRestoreすると、Recovery Managerが瞬時に動き、NSFファイルの修復とNDXファイルの生成を即時に行っているようですが、注意しなければいけないのは、複雑なViewで文書数の多いDBの場合はView IndexのRebuildに時間が掛かり、NDXファイルのRecoveryに時間が掛かると言うことです。

この点を考慮すると、Backupは静止点を確保した上でNSFファイルとNDXファイルの両方をBackupする方が安全ということになり、従来のNSFだけのBackupに比べ容量が肥大化することも考えられます。

また、File単位のBackup/Restoreソフトの性質上、Backupするファイルの数が増えると余計に時間が掛かり、Restoreの手間も増えてしまうと言うことも考慮点となります。

更に、Backup/Restoreソフトで拡張子でBackup対象を決めているような場合は、.ndxの拡張子を追加することも必要になってきます。

また、NIFNSFが有効化されたDBをNotes ClientにLocal Replicaして利用するUserが居るとしたら、本体のNSFが64GBに近い状態になっている場合、Local Replicaが取れなくなることも考慮点になるでしょう。

 

今回の環境では、names.nsfもNIFNSFを有効化しています。

では、Serverを停止して、NDXファイルを削除して立ち上げてみます。

 

Server Start時にRecovery Managerが動作し、NDXファイルを生成していることが分かります。

 

2019/01/23 22:25:40   Recovery Manager: Restart Recovery complete. (0/0 databases needed full/partial recovery)
2019/01/23 22:25:41   Recovery Manager: Assigning new DBIID for C:\IBM\Domino\Data\names_nsf.ndx (need new backup for media recovery).
2019/01/23 22:25:41   Informational, rebuild view needed - collection object cannot be read (reading C:\IBM\Domino\Data\names.nsf view note Title:'($Servers)')

・・・・

2019/01/23 22:26:29   Informational, rebuilding view - no container or index (reading C:\IBM\Domino\Data\names.nsf view note Title:'($Policies)')

 

通常、私の評価環境では正常にStartするまでに30秒弱なのですが、50秒近くかかっています。

実際の環境であればUser文書もGroup文書も数多くありますので、正常に使えるようになるまでに更に時間が掛かると思われます。

NIFNSFという新機能でView Indexを外出ししてViewの更新Performanceの向上などのメリットもありますが、運用を考えると、Backup/Restoreや障害時のRecoveryも十分に考慮した上で実装を検討した方が良いと思います。

 

今回は、Backup/RestoreやRecoveryについて考慮点を考えてみました。

次回は、NIFNSFにより、View Index構築のPerformanceは良くなるのか?を見てみたいと思います。

 

<続く>

 

1 | 2 | 3 | 4 | 5 | 最初次のページへ >>

Ameba人気のブログ

Amebaトピックス