本日は、Cognos TM1のセットアップで、とてもしょうもない事で半日くらい時間を無駄にしてしまいましたので、皆様も同じ事に引っかからないようにと、フィードバックさせて頂きます。
とあるプロジェクトのサポートのために、Cognos TM1 10.2.2@Windowsをセットアップしていました。
Cognos TM1 10.2.2を導入し、TM1管理サーバーとTM1サンプルのPlanning SampleをCognos Configurationで起動すると共に、Windowsのサービスへの登録して、これで良しとTM1 ArchitectからPlanning Sampleにアクセスしようとしたところ、TM1サーバーが何も表示されない、時々出くわす問題に当たりました。
この事象、経験された方多いですよね。
「使用可能なサーバーを更新」を何度やっても、全然表示されてくれない、イラっとするパターンです。
さて、どうしたものかとPDに入るわけですが、この記事の一番最後にもちろん原因が出てきますが、皆様原因わかりますか?
一番下まで読まずにピンと来た方は素晴らしいです。
私はなかなかピンと来ず、結局半日をPDに費やしました。
ここからは、ちょっとした推理小説気分で読んで頂けると楽しいかも知れません。
さて、まずはTM1 ArchitectのTM1管理ホストの指定の仕方が悪いかなと、localhostや実際のホスト名を入れて試してみましたが、NGでした。
TM1管理サーバーとTM1サーバーが通信できないのだろうな、と思い、同一ノード上ですが、自ノードのホスト名にpingを打ったところ、IPv6で返ってきたので、IPv4になるようにhostsを編集したりしましたが、NGでした。
TM1導入の前提が足りないのかと、前提の導入を確認しますが、NGでした。
・Microsoft .NET Framework
・Microsoft Visual C++ 2010 Redistributable Package
・Microsoft Excel
http://www.ibm.com/support/knowledgecenter/SS9RXT_10.2.2/com.ibm.swg.ba.cognos.tm1_inst.10.2.2.doc/t_tm1_inst_installingrequiredthirdpartysoftware.html
そうか、Windowsサービスの起動ユーザーが、Local Systemアカウントでは駄目で、特定のユーザーじゃなきゃ駄目だったな、と思い出し、特定の管理者権限もったユーザーで起動するも、NG。
http://www.ibm.com/support/knowledgecenter/SS9RXT_10.2.2/com.ibm.swg.ba.cognos.tm1_inst.10.2.2.doc/c_tm1serviceaccount_n701df.html#TM1ServiceAccount_N701DF
単にTM1のサンプル立ち上げるのって、こんなに難しかったっけ・・・と、イライラし始め
次に、tm1server.logでちゃんとPlanning Sampleが起動しているのか、と見ると、ずーっと、色々なオブジェクトのロードはSuccessできて、Errorは出てないな、と。
おや、でもこんな「管理サーバーに通知しています」、なんてメッセージいっつも出たっけか。
それに「TM1 Server is ready」が出てないな。
これは実はちゃんとPlanning Sampleが起動してないという事ね。
・tm1server.log抜粋
6176 [] INFO 2016-12-07 16:55:10.194 TM1.Server TM1CubeImpl::ProcessFeeders: Computing feeders for base cube '}DimensionFormats_plan_time'.
6176 [] INFO 2016-12-07 16:55:10.194 TM1.Server TM1CubeImpl::ProcessFeeders: Done computing feeders for base cube '}DimensionFormats_plan_time'.
6176 [] INFO 2016-12-07 16:55:10.194 TM1.Server TM1CubeImpl::ProcessFeeders: Computing feeders for base cube '}ElementAttributes_plan_chart_of_accounts'.
6176 [] INFO 2016-12-07 16:55:10.194 TM1.Server TM1CubeImpl::ProcessFeeders: Done computing feeders for base cube '}ElementAttributes_plan_chart_of_accounts'.
6048 [] INFO 2016-12-07 16:55:10.350 TM1.Server Starting PseudoElement thread. Thread Id: 6048
6376 [] INFO 2016-12-07 16:55:10.350 TM1.Server Starting spy thread. Thread Id: 6376
6176 [] INFO 2016-12-07 16:55:10.350 TM1.Server TM1 Server load time (secs) = 5
820 [] INFO 2016-12-07 16:56:06.296 TM1.Server 管理サーバーに通知しています
820 [] INFO 2016-12-07 16:57:06.956 TM1.Server 管理サーバーに通知しています
820 [] INFO 2016-12-07 16:58:07.213 TM1.Server 管理サーバーに通知しています
820 [] INFO 2016-12-07 16:59:07.465 TM1.Server 管理サーバーに通知しています
さて、どうしたものか、取り合えず「管理サーバーに通知しています」というメッセージは、ググッたりすると、英語で「notifying the admin server」というらしいので、過去事例を検索してみると、結局Tm1s.cfgの記述が悪いという話が多い。
※ちなみに、過去事例検索する時に、日本語メッセージではなく、英語メッセージで検索した方が、当然事例はたくさん引っかかりますので、情報が見つからない時は英語メッセージに翻訳しての検索は是非試すと良いと思います。
Tm1s.cfgの記述と言っても、サンプルで提供されているものだしな~と、一応記述を見てみるも、当然ながら特に変なところは無い。
が、まじまじと見ていて、この行に来たときにピンと閃きました!
UseSSL=T
さて、犯人はわかりましたか?
では、犯人ですが、最近TM1でホットな話題になっている、SSL証明書が2016年11月末で切れてしまっているという、以下のTechnoteの件でした。
IBM Cognos TM1 SSL Expiration - Manual Fix Approach - Landing Page
http://www-01.ibm.com/support/docview.wss?uid=swg21991653
自分も何件かのプロジェクトで、これのサポートしていたので、当然知っていたのですが・・・
もう過去の事の気がしていて、今は2016年12月で、新規にTM1 10.2.2をインストールで、という状況で思いが至りませんでした。
新規インストールと言っても、当然2016年11月末問題は発生するので、今後TM1を新規導入する場合、一連の初期セットアップの手順で、いきなりSSL証明書の更新も必要という事ですね。
案外こういう初期インストールだと、何か設定が足りてないのかなと思考が行ってしまい、まさに灯台下暗しに陥って時間を浪費してしまいました。
皆様も同じ問題に直面された場合、貴重な時間を浪費しないよう、是非この失敗談を心の片隅に留めておいて頂ければと思います。