Microsoft Project Server 2007はやっぱり使えない

Microsoft Project Server 2007はやっぱり使えない。
担当者が実績作業時間をProject Web Access 2007(以下PWA2007)に入力し、「自分のタスク」画面から「すべて提出」で提出したタスクの更新要求を、プロジェクト管理者がProject Web Access 2007で承諾・発行しても、サーバ上の発行済プロジェクトファイルに反映されない、というトラブルがあった。
PWA2007の「サーバー設定」の「キューの管理」画面をのぞいてみたところ、処理待ちのジョブが約1月分、キューに大量にたまっていた。
仕方なくリモートデスクトップでProject Server 2007を稼動させているサーバーにログオンし、Project Serverキューサービスを再起動したが、ジョブは流れない。何度か再起動してもダメ。
そのままでは新たに担当者から提出されるタスクの更新要求が、どんどんたまる一方になるので、やむを得ず処理待ちになっているジョブを、「キュー ジョブの管理」画面から「ジョブの取り消し」で取り消し・削除した。
担当者には、あらためて「すべて提出」でタスクの更新要求を出してもらったのだが、どうやら最新の更新分しか送信されないようで、キューから削除してしまった過去の更新分が再提出されない。
その結果、キューから取り消し・削除してしまった更新要求分は、いまだにサーバ上の発行済のプロジェクトファイルに反映されていない。
Project Server 2002から2007へバージョンアップして以降、改善されたことより改悪されたことの方が多すぎて、実に困っている。
上述のトラブルの根本原因は、Project Server 2007のキュー処理の品質の悪さだ。
キューのふるまいを見ている限り、障害を起こしたジョブの復旧を全く考慮していない。ジョブが復旧されるのは、Project Server 2007のキュー処理を実行するサーバを2台以上構築している場合だけ。
シングルサーバ構成でProject Server 2007を稼動させている場合は、Project Serverキューサービスで、何らかのジョブが障害を起こしても、そのジョブをキューサービスの別スレッドへ自動で移動する処理をしてくれない。
しかも、障害を起こしたジョブが滞っているスレッドに、後続のジョブが追加されないようにする処理もない。
その結果、滞っているスレッドに、お構いなしに後続のジョブがどんどん投入され、それらのジョブは処理待ち状態のまま放置されることになる。
Project Server 2002のときは、Project Professional 2002からProject Server 2002への処理も、Project Web Access 2002からProject Server 2002への処理も、どうやら全てリアルタイムで同期的に実行されていたようだ。
そのせいでクライアント側は処理完了まで待たされることになるが、サーバ側の処理でエラーが起これば、その場で検知できる。
ところが、Project Server 2007以降、Project Professional 2007からの処理も、PWA2007からの処理も、あらゆる処理が、いったんキューに入ってから処理されるようになった。
つまり、Project Server キューサービスが正常に動いているかどうかは、Project Server 2007システム全体にとって「生命線」なわけだ。
にもかかわらず、この「生命線」であるキューサービスに、障害になったジョブの自動復旧機能もない、自動破棄の機能もない、後続ジョブを障害発生中のスレッド以外のスレッドに自動で振り分ける機能もない。
これでは毎日、毎日、PWA2007の「キュー ジョブの管理」画面を開いて、ジョブ処理が滞っていないかを目視チェックする必要がある。
しかも、ジョブ処理の異常に気づいても、「キュー ジョブの管理」画面から、滞っているジョブにチェックマークを入れて、「ジョブの再試行」をしても現実には再試行されない。何のための「ジョブの再試行」機能なのか全く分からない。
結果として、復旧の方法はただ一つ。
そのジョブに対応するタスク更新要求をした担当者を推測して、その日に提出したタスクの実績作業時間を、すべてPWA2007から再入力してもらい、差分データを意図的に作って、「すべて提出」で提出してもらう方法だ。
ただ、これをやっても差分データが作成されず、最新のタスク更新要求しか提出されない場合がある。
そうすると、もう復旧の方法がない。運悪くジョブ障害に巻き込まれた担当者のタスクについては、実績作業時間が永遠にゼロのままとなってしまう。
しかも、都合の悪いことに、Project Server 2007から、各担当者の「自分のタスク」に現れる実績作業時間と、サーバ上のプロジェクトファイルに正常に発行・反映された実績作業時間が、一致しなくなってしまう。
各担当者が「自分のタスク」画面を見ている限り、各タスクの実績作業時間は正しく反映されているように見えるのに、それを「すべて提出」で提出した後の、非同期のキュー処理が何らかの障害で滞った場合、サーバ上のプロジェクトファイルには永遠に反映されず、両者の不一致は永遠に解消されない。
これがまともなプロジェクト管理ツールと言えるだろうか。願わくばProject Server 2002の同期更新(即時更新)のアーキテクチャに戻してほしいが、すでにミドルウェアであるWindows Sharepoint Services 3.0以降に依存する設計になってしまっているので、後には戻れないらしい。
エンタープライズ向けのミドルウェアは開発できるが、アプリケーションは、たかがProject Serverのような単純な作りの製品でさえ、このようにまともな製品を開発できない。
これがマイクロソフトのエンタープライズ向けアプリケーションの悲しい限界なのだ。