キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
863
閲覧回数
0
いいね!
0
コメント
Shuhei Mentani
Cisco Employee
Cisco Employee

はじめに

本ドキュメントでは Jabber for Windows (Jabber) のコンタクトリストのキャッシュタイマーの動作について説明します。

ここでは、以下のソフトウェアを用いた環境を使用しています。

製品名 ソフトウェアバージョン
Jabber for Windows 12.0(0)
Unified CM 11.5(1)SU3
IM and Presence 11.5(1)SU3
  

コンタクトリストのキャッシュタイマーとは

Jabber では、Active Directory (AD) や Cisco Unified Communications Manager User Data Service (UDS) などのコンタクトソースから取得したコンタクトの情報を一定期間、キャッシュとして保持し、この期間が過ぎるとコンタクトソースから情報を取得して更新します。

この一定期間のことをキャッシュタイマーと呼びます。各 Jabber 内で、1 つのコンタクトに 1 つのキャッシュタイマーを持ち、それぞれが 24 時間プラス 0〜6 時間(ミリ秒単位) のランダム値のタイマーが設定されます。

問題レポート (Jabber for Windows のログ取得方法) に含まれる Contacts\jabberAllContacts.xml で各コンタクトのキャッシュタイマーの満了時刻を確認することが可能です。

以下は、ある Jabber ユーザの jabberAllContacts.xml の抜粋ですが、user2 というコンタクトのキャッシュタイマー満了時刻が Unix Time で  1524214259705279 と設定されていることが確認できます。

これは、2018/04/20(金) 17:50:59.705279 を表しており、この時刻になるとキャッシュタイマーが満了することを意味します。

user2@ucapp.cisco.com,1524214259705279,1
Full Name,,test user2
First Name,,user2
Last Name,,test
Nickname,,test user2
Phone,work,**01
Username,,user2

 

キャッシュタイマーが満了した際の動作

キャッシュタイマーが満了すると、次回 Jabber へサインインしたタイミングで、コンタクトソースから情報を取得して更新します。その際に、新たなタイマーを設定します。

例えば、退職者を AD から削除した際や、社員の異動などで AD 上の電話番号などの情報が変更された場合には、最大で 30 時間以上経過した後に Jabber にサインインし直したタイミングで、コンタクトリストに変更が自動で反映されることになります。

なお、コンタクトを右クリックして、プロフィールの表示を行った場合には、AD への問合せが行われ、キャッシュタイマーは新たに設定されます。

CacheTimerBehavior.png

    

AD へ問合せ時のログ

Jabber にコンタクトを追加した際、及び、キャッシュタイマーが満了した後に、Jabber にサインインした際の動作について、Jabber の問題レポートと Wireshark のログを用いて説明します。

1. 4/13 16:56:07 user6 を検索し、AD へ問合せ実施

2018-04-13 16:56:07,250 DEBUG [0x0000053c] [rc\main\person-ldap\LdapSearcher.cpp(59)] [csf.person.ldap] [csf::person::ldap::LdapSearcher::search] - searchScope = 2,  filter  = (&(objectCategory=person)(objectClass=user)(|(sAMAccountName=user6))), baseDN=OU=tac,DC=ucapp,DC=cisco,DC=com

01ldap_req.png

 

2. AD から検索結果を取得し、コンタクトリストに追加

2018-04-13 16:56:07,266 DEBUG [0x0000053c] [\main\person\PersonManagerImpl.cpp(1701)] [csf.person] [csf::person::PersonManagerImpl::PersonResolutionHandler::onSearchComplete] - (00706AE8) Query 2618BBC8 for record 167816A0 (XMPP:user6@ucapp.cisco.com) on source Ldap-192.168.98.1. # of all found records: 1

02ldap_res.png

 

3. キャッシュタイマーが開始していることを確認

user6@ucapp.cisco.com,1523712932266513,1  <<< 2018/4/14 22:35:32.266513
Full Name,,test user6
First Name,,user6
Last Name,,test
Nickname,,test user6
Phone,work,**01
Username,,user6

4. 2018/4/13 17:00 Jabber からサインアウト

5. 2018/4/14 22:35 user6 のキャッシュタイマー満了

6. 2018/4/17 11:15 Jabber にサインイン後、user6 のタイマー満了を検知し、AD へ問合せ実施

2018-04-17 11:17:43,726 DEBUG [0x0000207c] [\include\csf\person\ExpireCache.hpp(584)] [csf.person] [csf::ExpireCache<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::vector<class std::shared_ptr<class csf::person::PersonRecord>,class std::allocator<class std::shared_ptr<class csf::person::PersonRecord> > > >::notifyBulkCacheItemExpired] - Triggering onCacheItemExpired on user6@ucapp.cisco.com, refreshed = 1
2018-04-17 11:17:43,726 DEBUG [0x000014a0] [c\main\person\CachedPersonRecord.cpp(37)] [csf.person] [csf::person::CachedPersonRecord::refreshCache] - Refreshing record LDAP:user6@ucapp.cisco.com

03ldap_req.png

 

6. AD から検索結果を取得し、コンタクトを更新

2018-04-17 11:17:43,741 DEBUG [0x00001904] [rc\main\person-ldap\LdapSearcher.cpp(59)] [csf.person.ldap] [csf::person::ldap::LdapSearcher::search] - searchScope = 0,  filter  = (&(objectCategory=person)(objectClass=user)(|(sAMAccountName=user6))), baseDN=CN=test user6,OU=tac,DC=ucapp,DC=cisco,DC=com

04ldap_res.png

 

7. キャッシュタイマーが開始していることを確認

user6@ucapp.cisco.com,1523709381256003,1  <<< 2018/4/14 21:36:21.256003
Full Name,,test user6
First Name,,user6
Last Name,,test
Nickname,,test user6
Phone,work,**01
Username,,user6

 

その他

キャッシュタイマーに関連した以下不具合の報告がありますので、ご注意下さい。

 
Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします