TB/TB-2008-03-PXFOLDER

出典: ScalixWikiJP

TB -> TB-2008-03-PXFOLDER

このページはTB-2008-03-PXFOLDER (米国サイト)の翻訳です。

目次

概要

今日のビジネス環境では、効率的な方法で情報を扱うことは以前よりも重要になってきています。 インターネットは様々な種類のデータを届けることができるため、主要な情報源となってきています。 知的労働者はたいていデスクトップの主要なアプリケーションとしてメールクライアントを使うため、そのような外部の情報を同じ環境に統合できることが望まれるようになってきています。

たいていの今日のメールとカレンダーシステムはRSSフィードとWebCal標準に従った外部カレンダーを組み込めます。 しかし、統合する場所は一般的にクライアント側にあります。 Scalixのクライアントを選択できるパラダイムを使えば、そのような説明はデータの重複や分散した設定の管理の難しさや経験の少ないユーザに味方します。

Scalix 11.4で導入されたScalixプロキシーフォルダはこの点に関して役に立つでしょう。 この機能では、サーバ側でそのような外部データ源に接続することができます。 標準のメールフォルダやカレンダーフォルダとしてフィードを提供するようにマッピングが適応され、自動的にすべての種類のサポートしているクライアントで利用できます。

初期リリースでは、プロキシーフォルダは前述のデータの種類をサポートします:

Scalixの将来のリリースでは他の外部データも同様にマッピングできるようになります。

プロキシーフォルダの使い方の例

以下の項目ではプロキシーフォルダを使う典型的な使い方のシナリオを並べます。 Scalix 11.4では、すべての管理をコマンドライン上で行います。 Scalixの将来のバージョンではユーザがScalixクライアントから自身のプロキシーフォルダを設定できるようになります。

個人用にRSSフィードを追加する方法

まず、RSSフィードを追加するためには、RSSフィードへの完全なURLが必要です。 例えば、BSS London Newsのフィードは次のURLになります:

http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml

このフィードをユーザ"Feed Demo"のメールボックス"feeds/london"に置き、4時間毎の更新を行うようにするためには、次のコマンドを実行します。

sxpfadd -n "Feed Demo" -t rss -i 4h -f "feeds/london" \
 -u "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml"

成功した時の出力は次のようなものになります。

Creating 'feeds/london'
From rss feed 'http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml'
Proxy Folder created OK: 'feeds/london' (DirectRef: 0001160b79fc8cd8)
Populating Proxy Folder from:
  http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml
Proxy Folder Sync start (RSS source)
Updating folder 'Feed.Demo@scalix.com/feeds/london'
From 'http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml'
0 items currently in folder
0 old item(s) removed
9 new item(s) added
Validating updated Proxy Folder contents...
Sync completed OK

sxpflistを実行すると、新しく作成したプロキシーフォルダの情報を見ることができます。

$ sxpflist
0001160b79fc8cd8    SYNCED    Feed Demo/feeds/london

プロキシーフォルダがユーザのメールボックスでどのように表示されるかは次のSWAのスクリーンショットを見てください。

Image:TB-2008-03-PXFOLDER-BBC-SWA.jpg

パブリックフォルダとしてRSSフィードを追加する方法

freshmeat.netのアナウンスを追加する場合は、そのRSSフィードは次のURLです。

http://feeds.pheedo.com/freshmeatnet_announcements_global

パブリックフォルダ上のプロキシーフォルダfeeds/software/freshmeatを、3時間毎の更新する場合には、次のコマンドを実行します。

$ sxpfadd -p -t rss -i 3h -f "feeds/software/freshmeat" \
  -u "http://feeds.pheedo.com/freshmeatnet_announcements_global"

コマンドが成功すると、次のような出力になります。

Creating 'Public Folders/feeds/software/freshmeat'
From rss feed 'http://feeds.pheedo.com/freshmeatnet_announcements_global'
Proxy Folder created OK: 'Public Folders/feeds/software/freshmeat'
  (DirectRef: 0001000cd78c3e10)
Populating Proxy Folder from:
  http://feeds.pheedo.com/freshmeatnet_announcements_global
Proxy Folder Sync start (RSS source)
Updating folder 'Public Folders/feeds/software/freshmeat'
From 'http://feeds.pheedo.com/freshmeatnet_announcements_global'
0 items currently in folder
0 old item(s) removed
70 new item(s) added
Validating updated Proxy Folder contents...
Sync completed OK

sxpflistを実行して、新しく作成したプロキシーフォルダを見ることができます。

$ sxpflist
0001160b79fc8cd8    SYNCED    Feed Demo/feeds/london
0001000cd78c3e10    SYNCED    Public Folders/feeds/software/freshmeat

次の画像はOutlook 2007で上記のプロキシーフォルダを表示するスクリーンショットです。

Image:TB-2008-03-PXFOLDER-FM-OL.gif

個人用のWebCALカレンダーを追加する方法

ドイツの休日のカレンダーは次の場所にあります。

webcal://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics

ユーザ"Feed Demo"のメールボックス"webcal/german"に表示させ、1日ごとの更新を行うようにするには、次のコマンドを実行します。

$ sxpfadd -n "Feed Demo" -t webcal -i 1d -f "webcal/german" \
  -u "http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics"

スキームとしてwebcal://の代わりに、http://を使う点に注意してください。そうしないと失敗します。

成功したときの出力は次のようになります。

Creating 'webcal/argentina'
From webcal feed
  'http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics'
Proxy Folder created OK: 'webcal/germany' (DirectRef: 00010a045cd0828e)
Populating Proxy Folder from:
  http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics
Proxy Folder Sync start (WebCAL source)
Updating folder 'Feed.Demo@scalix.com/webcal/argentina'
From 'http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics'
0 items currently in folder
0 old item(s) removed
63 new item(s) added
Validating updated Proxy Folder contents...
Sync completed OK

sxpflistを実行すると、新しく作成したフォルダを表示できます。

次のスクリーンショットはSWAで新しいカレンダーを表示したものです。

Image:TB-2008-03-PXFOLDER-WebCal-SWA.jpg

操作

コマンドのまとめ

次の新しいコマンドが導入されました。

sxpfadd プロキシーフォルダの追加
sxpfdel プロキシーフォルダの削除
sxpfmod プロキシーフォルダの修正
sxpflist プロキシーフォルダの一覧
sxpfshow プロキシーフォルダの詳細表示
sxpfsync プロキシーフォルダのコンテンツの更新

パラメータや使い方の詳細な情報は、対応するmanページを表示したり、コマンドに--helpパラメータを付けて実行したりすることにより見ることができます。

プロキシーフォルダのステータス

Proxy Folders can be in one of the following states:

プロキシーフォルダは次のステータスのどれか一つになります。

CREATED 作成したが、データを取得していない
SYNCING 同期中である
SYNCED 同期が成功した
DELETED プロキシーフォルダには削除マークが付与されている
ERROR エラーが起きた

プロキシーフォルダの修正方法

プロキシーフォルダ上の操作はフォルダを識別するdirect refを使って行うことができます。 direct refはプロキシーフォルダを含めたシステム上の各オブジェクトに付いているユニークIDです。 sxpflistを使って、すべてのプロキシーフォルダのdirect refを見つけることができます。

$ sxpflist 
0001160b79fc8cd8    SYNCED    Feed Demo/feeds/london
00010a045cd0828e    ERROR     Feed Demo/webcal/german
0001000cd78c3e10    SYNCED    Public Folders/feeds/software/freshmeat
00010010aba9bfc3    SYNCED    Feed Demo/webcal/argentina

左側にある数値が各フォルダのdirect refです。

更新間隔の変更方法

londonフィードの更新間隔を8時間毎に変更するには、次のように実行します。

$  sxpfmod -d 0001160b79fc8cd8 -i 8h
Proxy Folder info file: /var/opt/scalix/do/s/proxy/00001dr/info
      USER_CN=Feed Demo
      AUTH_ID=Feed.Demo@scalix.com
      FOLDER=feeds/london
      CLASS=IPF.Note
      DREF=0001160b79fc8cd8
      SOURCE_URL=http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml
      SOURCE_TYPE=RSS
      SYNC_INTERVAL=8h

プロキシーフォルダの削除方法

プロキシーフォルダを削除するには、そのフォルダのdirect refを指定してsxpfdelを実行します。

$ sxpfdel -d 00010010aba9bfc3
Proxy Folder 'webcal/argentina' deleted

そのフォルダに削除マークが付いたのがわかります。

$ sxpflist
0001160b79fc8cd8    SYNCED    Feed Demo/feeds/london
00010a045cd0828e    SYNCED    Feed Demo/webcal/german
0001000cd78c3e10    SYNCED    Public Folders/feeds/software/freshmeat
00010010aba9bfc3    DELETED   Feed Demo/webcal/argentina

このフォルダにすべてのユーザがアクセスした後に、完全に削除されます。

プロキシーフォルダの追加特性

プロキシーフォルダの管理はコマンドラインツールで行います。

標準のScalixの方法で再エクスポートできます。

普通のフォルダと比べて、いくつかの点でプロキシーフォルダは異なる動作を行います。

リードオンリー プロキシーフォルダは読み込み専用である。
omscan プロキシーフォルダはomscanの対象外である。
削除 削除された時にコンテンツはリカバリフォルダに移動しない。
インデックス プロキシーフォルダにはインデックスが作成され、コンテンツは検索結果に含まれる。

制限

11.4では次の制限がプロキシーフォルダに適応されます。

Admin only 現時点では管理者のみがプロキシーフォルダの作成、編集、削除を行うことができる。さらに、ユーザ用のUIはない。
No Auth 現時点は、認証を必要とするフィードはサポートしていない。
Characters プロキシーフォルダの名前は次の文字を含めることができない。 (See Bug 17021, 17118): $ % * / # [ ]
Max No. 最初の100エントリのみがフィードが処理され、残りは無視される。
Aging フィードで提供されなくなった項目は、プロキシーフォルダから削除される。
URL http:// URLs are supported のみをサポートしている。 webcal:// とJavaScriptのリダイレクトはサポートされない。 (See Bug #17064).
Username ユーザ名に中国語や日本語を含んでいるときにはsxpfaddはプロキシーフォルダの作成に失敗する。 (See Bug #17220). この問題を回避するにはユーザ名の代わりに認証IDを使うことができる。
Quota プロキシーフォルダのコンテンツはユーザのメールボックスサイズに含まれる。 (See Bug #17282).
sxmboxexp sxmboxexpはプロキシーフォルダをエクスポートする (See Bug #17283).

Scalixは後のリリースでこれらの問題に対応する計画があります。

トラブルシューティング

ログへのアクセス方法

以下に掲げる2つの場所と並んで~/logs/daemon.stderrにもログを書きます。 これは既知のバグであり、将来修正される予定です。(see #17249)

バックグランドサービス用のログファイルの場所

プロキシーフォルダのバックグランドサービスは次のファイルにログを書きます。

~/proxy/log

このログファイルには最大1000エントリを含むことができ、その後循環します。

特定のプロキシーフォルダのログへのアクセス方法

sxpfshowコマンドを使って、ログにアクセスすることができます。

$ sxpfshow -d 0001160b79fc8cd8 -l
Proxy Folder info file: /var/opt/scalix/do/s/proxy/00001dr/info
      USER_CN=Feed Demo
      AUTH_ID=Feed.Demo@scalix.com
      FOLDER=feeds/london
      CLASS=IPF.Note
      DREF=0001160b79fc8cd8
      SOURCE_URL=http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml
      SOURCE_TYPE=RSS
      SYNC_INTERVAL=8h
2008-04-17 06:38:14     SYNCED

2008-04-17 06:38:08 Proxy Folder created OK: 'feeds/london' (DirectRef: 0001160b79fc8cd8)
2008-04-17 06:38:08 Populating Proxy Folder from: \
  http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml
2008-04-17 06:38:08 Proxy Folder Sync start (RSS source)
2008-04-17 06:38:08 pfRSS -f Feed.Demo@scalix.com/feeds/london \
  -u http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml \
  -w /var/opt/scalix/do/s/proxy/temp/00001dr -d /var/opt/scalix/do/s/proxy/00001dr
2008-04-17 06:38:08 Updating folder 'Feed.Demo@scalix.com/feeds/london'
2008-04-17 06:38:08 From
  'http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml'
2008-04-17 06:38:09 06:38:09 URL:
  http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml [6088/6088] \ 
  -> "/var/opt/scalix/do/s/proxy/temp/00001dr/data.raw" [1]
2008-04-17 06:38:09 0 items currently in folder
2008-04-17 06:38:09 Adding item: Labour Hoey would help Tory mayor
2008-04-17 06:38:10 Adding item: Truckers in diesel price protest
2008-04-17 06:38:10 Adding item: UK arrests in Tamil Tigers probe
2008-04-17 06:38:10 Adding item: Are electoral slogans working?
2008-04-17 06:38:10 Adding item: Disabled boy awarded £3m payout
2008-04-17 06:38:11 Adding item: Heathrow rapped by US air chief
2008-04-17 06:38:11 Adding item: WWII planes back RAF hero statue
2008-04-17 06:38:11 Adding item: Paddick urges bus driver action
2008-04-17 06:38:12 Adding item: Service marks church restoration
2008-04-17 06:38:12 0 old item(s) removed
2008-04-17 06:38:14 9 new item(s) added
2008-04-17 06:38:14 Validating updated Proxy Folder contents...
2008-04-17 06:38:14 Deleting work files in /var/opt/scalix/do/s/proxy/temp/00001dr
2008-04-17 06:38:14 Sync completed OK

sxpfshowコマンドを使って、ディスク上のフォルダの位置を取得することもできます。

$ sxpfshow -d 0001160b79fc8cd8
Proxy Folder info file: /var/opt/scalix/do/s/proxy/00001dr/info
...

lessのようなコマンドを使ってログを見ることもできます。

$ less /var/opt/scalix/do/s/proxy/00001dr/log

ログファイルは最大10回の更新を含み、後に循環します。

プロキシーフォルダのステータスや詳細情報の取得方法

sxpflistを使って、プロキシーフォルダのステータスを取得することができます。

$ sxpflist
0001160b79fc8cd8    SYNCED    Feed Demo/feeds/london
00010a045cd0828e    SYNCED    Feed Demo/webcal/german
0001000cd78c3e10    SYNCED    Public Folders/feeds/software/freshmeat

or run sxpfshow with the direct ref of the folder in question as parameter:

$ sxpfshow -d 0001160b79fc8cd8
Proxy Folder info file: /var/opt/scalix/do/s/proxy/00001dr/info
      USER_CN=Feed Demo
      AUTH_ID=Feed.Demo@scalix.com
      FOLDER=feeds/london
      CLASS=IPF.Note
      DREF=0001160b79fc8cd8
      SOURCE_URL=http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/london/rss.xml
      SOURCE_TYPE=RSS
      SYNC_INTERVAL=8h
2008-04-17 06:38:14     SYNCED

フォルダは作成されたが、データを取得できない

フォルダの作成時にサポートされていない文字を使っていないかを確認してください。 詳しくはこの文書の「制限」の項目を読んでください。

同期の実行

フォルダにフィードデータを取得している時にエラーが発生した時、例えば次の時、

$ sxpfadd -n "Feed Demo" -t webcal -i 1d -f "webcal/german" \ 
    -u "http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics"
Creating 'webcal/german'
From webcal feed 'http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics'
Proxy Folder created OK: 'webcal/german' (DirectRef: 00010a045cd0828e)
Populating Proxy Folder from: \
  http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics
Proxy Folder Sync start (WebCAL source)
Updating folder 'Feed.Demo@scalix.com/webcal/german'
From 'http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics'
0 items currently in folder
0 old item(s) removed
73 new item(s) added
Validating updated Proxy Folder contents...
Warning: Msg without X-Scalix-Proxy-Id: 00010a41cd549087  Silvester
54d53
< A9CBEA60-EB2E-4F6A-A56D-E9E7EF7FFA75-SEQ-5@www.aslashv.dreamhost.com
73a73
> <No_Proxy_Id_for_00010a41cd549087>
*** Updated contents don't match external data

あるいは、sxpflistの実行中にエラーがあるとき、

$ sxpflist
0001160b79fc8cd8    SYNCED    Feed Demo/feeds/london
00010a045cd0828e    ERROR     Feed Demo/webcal/german
0001000cd78c3e10    SYNCED    Public Folders/feeds/software/freshmeat
00010010aba9bfc3    SYNCED    Feed Demo/webcal/argentina

次のコマンドを実行中にフォルダの同期を実行することができます。(このケースではドイツの休日のwebcal)

$ sxpfsync -d 00010a045cd0828e -v 
Proxy Folder Sync start (WebCAL source)
pfWebCAL -f Feed.Demo@scalix.com/webcal/german \ 
  -u http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics \
  -w /var/opt/scalix/do/s/proxy/temp/00001e7 \
  -d /var/opt/scalix/do/s/proxy/00001e7  -v
Updating folder 'Feed.Demo@scalix.com/webcal/german'
From 'http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics'
08:04:47 URL:http://www.aslashv.dreamhost.com/davpublic/feste%20Feiertage.ics [19342/19342] \
  -> "/var/opt/scalix/do/s/proxy/temp/00001e7/data.ics" [1]
73 items currently in folder
Msg already exists: 3202CC3C-E114-4D67-8602-68C160D66623-SEQ-4@www.aslashv.dreamhost.com
Msg already exists: 5F679E5F-FD56-4E6D-B424-F9A364A44525-SEQ-4@www.aslashv.dreamhost.com
...
Msg already exists: 36C34637-AA9C-420B-B62B-471E450FB2E1-SEQ-3@www.aslashv.dreamhost.com
0 old item(s) removed
0 new item(s) added
Deleting work files in /var/opt/scalix/do/s/proxy/temp/00001e7
Sync completed OK

sxpflistを再び実行すると、フィードがSYNCEDステータスになっているのを見ることができます。

$ sxpflist
0001160b79fc8cd8    SYNCED    Feed Demo/feeds/london
00010a045cd0828e    SYNCED    Feed Demo/webcal/german
0001000cd78c3e10    SYNCED    Public Folders/feeds/software/freshmeat
00010010aba9bfc3    SYNCED    Feed Demo/webcal/argentina

sxpfsyncコマンドはプロキシーフォルダを(-rオプションで)再初期化することもできます。

実装の詳細

外部データはScalixフォルダの中ではメッセージとして表現されています。 これはサーバ側のローカルキャッシュ中に維持されます。 そのため、ユーザのメールボックスにマップされるリモートコンテンツの効率的なコピーになります。

キャッシュのコンテンツは~/proxy内に保存されます。

バックグランドサービス(pf)はフィードをダウンロードしたり、外部コマンドwgetを利用したり、プロキシーフォルダを更新したりすることに責任を持ちます。 そのサービスは次のコマンドを実行することにより個別に起動できます。

$ omon pf

次のコマンドで停止できます。

$ omoff pf

フィードデータはダウンロードされた後に、変換され、IMAP経由でプロキシーフォルダに挿入されます。 このために、"Proxy-Folder Admin"と呼ばれる特種な管理ユーザが使われます。このユーザは間違って削除されたら自動的に再作成されます。

保持オプション(-D)を使ってsxpfsyncを実行すると更新処理中に作成されるすべての一時ファイルを検査します。

$ sxpfsync -d 0001000cd78c3e10 -r -D
Proxy Folder Sync start (RSS source)
Updating folder 'Public Folders/feeds/software/freshmeat'
From 'http://feeds.pheedo.com/freshmeatnet_announcements_global'
73 items currently in folder
73 old item(s) removed
73 new item(s) added
Validating updated Proxy Folder contents...
Work files retained in /var/opt/scalix/do/s/proxy/temp/00001es
Sync completed OK

これは外部データとマップされたコンテンツとIMAPコマンドと応答を含みます。