CSP トラブルシューティング & Tips インターシステムズジャパン㈱ イ タ シ テ ジャ ㈱ カスタマーサポート サポートエンジニア 掛地 めぐみ アジェンダ CSPの概要 トラブルシュ トラブルシューティング ティング 良くある問題 & 解決策 Tips 2 はじめに CSPアプリケーションには、様々なトラブルが あります。そのトラブルが、「どこで」「な ぜ」起こっているかを確認するために、まずは CSPの仕組みからみていきます。 また、CSPの動作原理と各コンポーネントとの 関係についても あわせてみていきます 関係についても、あわせてみていきます。 3 CSPの概要 CSP の概要 4 CSP の概要 CSP の仕組み クライアント Web サーバ Browser IIS or Apache Caché サーバ CSP Gateway http://localhost/csp/samples/demo.csp 5 CSP の概要 Http リクエスト クライアント Browser Web サーバ IIS or Apache Caché サーバ CSP Gateway Web サーバ クライアント Browser HTTP IIS or Apache http://localhost:57772/csp/samples/demo.csp プロトコル 6 ホスト名 [ポート] CSP の概要 Web サーバリクエストハンドリング Web サーバ クライアント Caché サーバ IIS or Apache Browser CSP Gateway • WEBアプリケーションの決定 Web サーバ IIS • 拡張子マッピングの確認 CSP Gateway • CSPゲートウェイ(CSPms.dll) の呼 び出し http://localhost/csp/samples/demo.csp 仮想ディレクトリ 拡張子 7 CSP の概要 CSP リクエストハンドリング Web サーバ クライアント Caché サーバ IIS or Apache Browser CSP Gateway Web サーバ CSP Gateway Caché サーバ • CS CSPアプリケーションの プリケ シ 決定 • Caché サーバへ TCP リクエストの送信 TCP http://localhost/csp/samples/demo.csp CSP アプリケーション 8 CSP の概要 Caché リクエストプロセス クライアント Browser Web サーバ IIS or Apache Caché Server Caché サーバ CSP Gateway • CSP アプリケーションの決定 • セキュリティの確認 • HTML コードの生成 • http レスポンスの送信 htt //l lh t/ / http://localhost/csp/samples/demo.csp l /d CSP アプリケーション 9 トラブルシューティング 10 ページ名 トラブルシューティング どこで問題が起こっているか? 5 1 クライアント Web サーバ Browser 3 2 IIS or Apache p 4 CSP Gatewayy ① Webサーバの構成 ② CSP ゲートウェイ接続 ③ CSP ゲートウェイの設定(アプリケーション) ④ Cachéサーバ 接続 ⑤ Caché CSP アプリケーション設定 ⑥ Caché CSP アプリケーション : ユーザ作成 11 トラブルシューティング ① WEB WEBサーバの構成+接続確認 サーバの構成+接続確認 5 1 クライアント Web サーバ IIS or Apache Browser 3 2 4 6 Caché サーバ CSP Gateway 以下のURLへのテスト接続: • http://<webserver>:<port> http://<webserver>:<port>/csp/samples/ もし、接続できない場合・・・ • 【原因は?】 ・ポートに接続できない ⇒ Firewall の設定は問題ない? ・Webサーバの構成・設定に問題がある可能性。 バ 構成 定 があ 能性 ⇒ Webサーバの設定・構成の確認 • IIS • Apache - httpd.conf // 格納場所に問題ない? Windows: C:¥Program Files (x86)¥Apache Group¥Apache2 C:¥Program Files (x86)¥Apache Software Foundation¥Apache2.2 Unix/linux: ps –ef | grep httpd (<apache_install_dir>/bin) 12 6 Caché サーバ トラブルシューティング ② CSP CSPゲートウェイ接続 ゲートウェイ接続 5 クライアント 1 Web サーバ 2 IIS or Apache Browser 3 4 6 Cache サーバ CSP Gateway CSPゲートウェイ管理ページへのテスト接続 ゲ ウ イ管理ペ ジ 接続 http://<webserver>:<port>/csp/bin/Systems/Module.cxw ** * csp.ini *** [SYSTEM] System_Manager=190.8.7.6 No Activity Timeout=1800 No_Activity_Timeout=1800 sys_shm_inst=1 : • もし、次のエラーになった場合: このシステムを使用する権限がありません 【原因は?】 ・ 接続クライアントは、CSPゲートウェイへの接続が許可されていません。 p に、対象クライアントIPアドレスを追加 ⇒ csp.ini • もし、正常に動作しない・接続できない場合・・・ 【原因は?】 ・ WEBサーバへのCSPゲートウェイのインストレーションが正しく行われていない 可能性がある ⇒ 構成見直し or CSPゲートウェイの再インストール 13 トラブルシューティング ③ CSP CSPゲートウェイの設定 ゲートウェイの設定 5 クライアント Browser 1 Web サーバ IIS or Apache 2 3 4 6 Cache サーバ CSP Gateway 設定内容は、CSP.iniに格納 IIS:C:¥Inetpub¥CSPGateway Apache:C:¥Program Files (x86)¥Apache Software Foundation¥Apache2.2¥CSPGateway • デフォルトパラメータ • サーバ接続 • アプリケーションアクセス • イベントログファイル (CSP.log) • CSP.ini と CSP.log の書き込み権限を確認 (& CSPGateway ディレクトリも) 14 トラブルシューティング ④ CSP CSPゲートウェイのサーバ接続テスト ゲートウェイのサーバ接続テスト 5 クライアント 1 Web サーバ 2 IIS or Apache Browser 3 4 6 Caché サーバ CSP Gateway 接続に成功すると・・・ 15 トラブルシューティング CSPゲートウェイ:サーバ接続に失敗したら CSP ゲートウェイ:サーバ接続に失敗したら 5 クライアント Browser 1 Web サーバ IIS or Apache 2 3 4 6 Caché サーバ CSP Gateway もし、CSPゲートウェイのサーバ接続テストに失敗したら・・・ 【原因は?】 CSPゲートウェイの設定や構成の問題? ⇒ IPアドレス、ポート、ユーザ名/パスワードの確認 設定 問 設定に問題が見つけられない場合、各種ログを確認 見 場 、各種 認 • セキュリティ監査の有効化 + Login, LoginFailureの有効化 • ISCLOG の有効化 ^%ISCLOG=3 テスト接続後に確認 16 トラブルシューティング ⑤ CSP CSPアプリケーションの接続確認 アプリケーションの接続確認 5 クライアント 1 Web サーバ 2 IIS or Apache Browser 3 4 6 Caché サーバ CSP Gateway もし 以下のテスト接続に失敗したら もし、以下のテスト接続に失敗したら・・・ - http://<webserver>:<port>/csp/samples/inspector.csp 【原因は?】 • CSPアプリケーションの設 定・構成に問題? 17 トラブルシューティング CSPアプリケーションの設定 CSP アプリケーションの設定 5 クライアント Browser 1 Web サーバ IIS or Apache 2 3 4 6 Caché サーバ CSP Gateway Caché 管理ポータル 管理ポ タル :CSP CSP アプリケーション設定の確認 アプリケ ション設定の確認 • システム管理 > セキュリティ > アプリケーション > ウェブアプリケーション === • • • • • 18 • 確認ポイント === 有効 認証方法 ネームスペース CSP ファイル物理パス ログインページ 静的ファイルの提供 トラブルシューティング ⑥Caché Cachéサーバまでの接続に問題がない場合 サーバまでの接続に問題がない場合 5 クライアント 1 Web サーバ IIS or Apache Browser 3 2 4 6 Caché サーバ CSP Gateway ① WEBサーバのテスト接続に問題はない WEBサ バのテスト接続に問題はない ↓ ② CSPゲートウェイのテスト接続にも問題はない ↓ ③ CSPアプリケーション設定にも問題はない ↓ ユーザ作成のCSPアプリケーション固有の問題である可能性が考えられる ログ&エラーメッセージより問題の原因を追跡 19 トラブルシューティング ロギングについて クライアント Browser Webサーバログ Web サーバ IIS or Apache HTTPトレース Caché サーバ CSP Gateway ISCLOG 監査ログ イベントログ (CSP.log) 20 Cconsole.log トラブルシューティング : ロギングについて Web サーバログ アクセスログ・エラーログ • リクエストとレスポンスを記録 リク ストとレスポンスを記録 -Webクライアントからどのようなリクエストがきたか? - Webクライアントにどのようなレスポンスが返されたか? • 格納場所 - IIS:C:¥inetpub¥logs¥LogFiles - Apache: C:¥Program Files (x86)¥Apache Software Foundation¥Apache2.2¥logs ※ログの格納場所は、IISマネージャー / httpd.conf で確認 21 トラブルシューティング : ロギングについて CSPGatewayログ(イベントログと CSPGateway ログ(イベントログとHTTP HTTPトレース) トレース) イベントログ • CSPゲートウェイとCaché間のデータ送受信を記録 イベントログは、次のログレベルを設定可能。 EVn (n=1~9) • 出力ファイル C:¥Inetpub¥CSPGateway¥CSP.log HTTP トレース • HTTPヘッダやPOSTされた内容(アプリケーション)を記録 HTTP トレース機能は、ログ・レベル トレ 機能は グ レベ v99 (処理の HTTP 要求を記録) および v9r (HTTP 要求および応答を記録) で、 既に収集されているイベント・ログ情報がベース。 • CSPゲートウェイ管理画面より確認 22 トラブルシューティング : ロギングについて Cachéサーバログ Caché サーバログ ISCLOG • CSPゲートウェイとCachéサーバ間のやりとりを記録 Set ^%ISCLOG=n (n=1,2, or 3) Set ^%ISCLOG=0 でロギング無効化 • ^%ISCLOGグローバルに記録、管理ポータル等で確認 監査ログ 監査 グ • %Loginfailureイベントで、なぜログインに失敗したかを確認できる • 監査ログの閲覧で確認 23 トラブルシューティング : デモ 実際にログを見てみよう! ログを利用したトラブルシューティング 24 トラブルシューティング:デモ トラブル事例:1 トラブル その1:<UNDEFINED>エラー 関連 5 クライアント 1 Web サーバ 2 IIS or Apache Browser 3 4 6 Caché サーバ CSP Gateway どこに問題の原因 があるかな? 25 トラブルシューティング:デモ トラブル事例:2 トラブル その2:ハイパーイベントが動かない 5 クライアント Browser 1 Web サーバ IIS or Apache 2 3 4 6 Caché サーバ CSP Gateway どこに問題の原因 があるかな? 26 トラブルシューティング:デモ トラブル事例:3 トラブル その3:Cachéサーバに接続できない 5 クライアント Browser 1 Web サーバ IIS or Apache 2 3 4 6 Caché サーバ CSP Gateway どこに問題の原因 があるかな? 27 よくある問題 & 解決策 28 よくある問題 & 解決策 Error 404.8 – Not Found: Found:HiddenSegments • 管理ポータルにはアクセスでき る。しかし、CSPゲートウェイ管理 ページにアクセスすると、このエ ラーになる場合 • C:¥Windows¥System32¥inetsrv¥co nfig¥applicationHost.config fi ¥ li ti H t fi の 内容を確認 • <add segment=“bin”/> があれば、コメントアウトする 29 よくある問題 & 解決策 You are not authorized to view this page… • HTTPステータスコードは以下 401.3 – Access Denied か 403 – Forbidden • OS レベルのパーミッション (アクセス権)エラー • C:¥inetpub¥CSPGateway と <instaldir>¥CSP に対し、IIS_IUSRS, USERS, SYSTEM Administrators 等に正 SYSTEM, しい権限が付与されているかを 確認 • 親ディレクトリの権限を継承す るように設定 30 よくある問題 & 解決策 警告:: 構成ファイルに書き込めません 警告 構成ファイルに書き込めません.. • 警告: 構成ファイルに書き込めません. もしくは 警告: ログファイルに書き込めません. • C:¥inetpub¥CSPGateway¥CSP.ini と C ¥i t b¥CSPG t C:¥inetpub¥CSPGateway¥CSP.log ¥CSP l について、Write権限を付与する 必要がある 31 よくある問題 & 解決策 その他よくある問題… その他よくある問題 … “Cannot find ZenUtils.js” - 拡張子マッピングの設定に問題がないか? *.js のマッピングは追加されているか? - 静的ファイルが指定した物理パスに存在するか? 静的ファイルの設定に問題はないか? 管理ポ 管理ポータルで特定ページのみ表示されない タルで特定 ジのみ表示されない - IEでダメな場合、他のブラウザでは? Firefox、Chrome など 32 よくある問題 & 解決策 その他よくある問題… その他よくある問題 … Http 404 Error – File Not Found Object Not Found Fo nd - CSPアプリケーションパスが定義されているか確認 - 拡張子のマッピングが設定されているか確認 - 指定した物理パスにファイルが存在するか → ある方法を使うとわかり易いエラー表示ができる! 33 よくある問題 & 解決策 エラーメッセージ:よりわかり易く 古いバージョンでは・・・ ・エラー時に、わかりやすいエラーページを返していた ⇒ そのページを表示する分、余分にライセンスを消費 CSPエラー発生 エラー: ログアウトしているので、この操作を行うことができません。 エラー番号: 5918 CSPページ: /csp/wrc/B.csp ネームスペース: WRC クラス: csp.e 新しいバージョンでは・・・ ・シンプルなエラーを返すようになった ・シンプルなエラ を返すようになった ⇒ 余分なライセンスは消費されなくなったが、エラー詳細が分りづらい Object Not Found The requested URL /csp/wrc/B.csp was not found on this server. 34 よくある問題 & 解決策 エラーメッセージ:よりわかり易く これまでの動きに戻すには? カスタムエラーページで、 PAGENOTFOUNDERRORPAGE パラメータを指定 PAGENOTFOUNDERRORPAGE = “” – 404 ページが見つかりません エラーを返す (既定) PAGENOTFOUNDERRORPAGE = 1 – 古いバージョンのように通常のエラーページを返す。 ※ライセンスが消費される PAGENOTFOUNDERRORPAGE = “HTML ページへのパス” – 静的ページを表示。 例えば ‘/csp/samples/static.html’ ※ライセンスは消費されないが、固定のHTMLページを表示するのみ。 Class % %ZCSP.Error Extends % %CSP.Error { Parameter PAGENOTFOUNDERRORPAGE As STRING = 1; } ※その他、LICENSEERRORPAGE/OTHERSTATICERRORPAGEなどのパラメータを指定可能 http://docs.intersystems.com/cache20131j/csp/docbook/DocBook.UI.Page.cls?KEY=GCSP_httpreq#GCSP_C161955 35 Tips 36 Tips タイムアウトの違い クライアント Browser Web サーバ IIS or Apache Cache サーバ CSP Gateway CSPアプリケ CSPアプリケーションのセッションタイムアウト ションのセッションタイムアウト -クライアントから最初のリクエストを受け取ってから (なにも操作がない場合)、セッション情報を保持する最大時間(秒) CSPゲートウェイのタイムアウト (1) [サーバ応答タイムアウト] - Caché サ サーバが バが Web サ サーバからの要求に応答を返すまでの最大時間 バからの要求に応答を返すまでの最大時間 (秒) (2) [キューイングされたリクエストのタイムアウト] -未処理の要求が、キュー内で待機できる最大時間 (秒) (3) [非活動タイムアウト] -プールされたプロセスがアイドル状態で保持される最大時間 (秒) 37 Tips セッションタイムアウトとライセンス セッションは、ブラウザが初めてCSP画面にアクセスした時に 開始されます。 セッション開始とともに ライセンスのチェックと消費が行われます。 セッション開始とともに、 セッション終了時、ライセンスを解放します。 セッションの終了は、以下2通りの方法があります。 • あらかじめ設定されたタイムアウトを経過した場合 • 明示的にセッションを終了する場合 %session.EndSessionプロパティに1を代入するとセッションは終了します。 ただし・・・ CSPページを1 ページだけ表示し、セッションを終了( %session.EndSession = 1 )、または セッションがタイムアウトした場合、CSP は数分間の 猶予期間 を受け取り、その間はラ イセンスが消費され続けます。 38 Tips 静的ファイル • ブラウザはWebサーバに静的ファイ ルのリクエストを送信 • 拡張子のマッピングを確認する • CSPゲートウェイか、サーバのファイ ルシステムにリクエストが送られる A) クライアント Browser Web サーバ IIS or Apache Image.jpg Style.css Scripts.js B) クライアント Browser Web サーバ IIS or Apache Caché サーバ CSP Gateway Image.jpg Style.css Scripts.js 39 Tips イベントログのサイズでの切り替えについて Caché 2010.1より、 CSPゲートウェイ: デフォルトパラメータで「イベントログ切り替えサイズ:」の設定によ り、一定サイズになったら切り替わる。 ※ファイルをリネームした場合は、自動で切り替わる ※Caché 2013.2以降、 2013 2以降 cconsole.log cconsole log のように 現行 + 1 ファイルのみ生成される 例:CSP_YYYYMMDD_hhmm.log 40 nK(キロバイト) nM(メガバイト) Tips CSPデバッグ CSP デバッグ • CSP Inspector • Cachéスタジオでエラー発生箇所の確認 • Cachéターミナルからの実行 41 Tips CSPデバッグについて: CSP デバッグについて: CSP Inspector • ページ内、以下のスクリプトを追加することで トレース コンソールを Web ページに作成すること が可能。 <SCRIPT LANGUAGE=CACHE RUNAT=SERVER> Set %response.TraceDump=1 </SCRIPT> http://localhost/csp/samples/inspector.csp • %resuponse.TraceDumpを指定しない場合は0を設定。 42 Tips CSPデバッグについて: CSP デバッグについて: CSP Inspector+スタジオ Inspector+スタジオ CSPエラーが発生した場合、CSPエラーページより、以下の情報を確認できます。 ・ エラー発生箇所 ・ オブジェクトダンプ:「CSP request object inspector」画面 ← エラー発生箇所 ← エラー種別 ← エラー発生行 ※注意1 ウォッチポイントを使用する方法 を紹介。 スタジオ:[デバッグ] – [ブレーク ポイント] – [ブレークポイントの 表示] ウォッチポイント: 変数:tDateH 条件:$Data(tDateH) = 0 ※tDateHが未定義になる時 注意1 自動コンパイルではソース行(*.int)は保存されないため、スタジオでCSPファイル をコンパイルするか、コマンドにてコンパイルを行ってください。 43 Tips CSPデバッグについて: CSP デバッグについて: ターミナルからの実行 • サーバ上でCSPページの参照を行うには、以下のメソッドを使用して任意 のCSPページを参照可能。(HTTP headers と HTMLコードをダンプ) 例: do $system.CSP.Show("csp/samples/menu.csp") or: do $system.CSP.Shell() CSP:SAMPLES>>>get csp/samples/menu.csp • Shell() で実行した場合は、エラー実行後に、ページ内のオブジェクト (%request や%response、%session)の値を参照できるので、それを利用し てデバックを行うことができます。 44 Tips CSPアプリケーションでHTTP CSPアプリケーションで HTTPヘッダ ヘッダ (CGI環境変数 (CGI 環境変数))を取得 CGI環境変数は、%requestオブジェクトを使用して取得できます。 CGI環境変数の取得には%requestオブジェクトの CgiEnvsプロパティを使用します。 %request CgiEnvs(“環境変数名”)) %request.CgiEnvs(“環境変数名 例) %request.CgiEnvs(“HTTP_ACCEPT_CHARSET ”) また、GetCgiEnvs()メソッドを使用しても取得できま す。(推奨) 例) %request.GetCgiEnv(“環境変数名””) スクリプトでは、取得したCGI 環境変数を全て画面に表示 しています。 サンプルURL http://localhost/csp/samples/inspector.csp 45 Tips CSPアプリケーションで CSP アプリケーションでCookie Cookie情報を取得 情報を取得 CGI環境変数と同様にCookieも%requstオブジェクトを使用して取得できます。 書式は以下の通りです。 • Cookiesプロパティを使用する場合 %request.Cookies(“名前”,”参照番号”) • GetCookie()メソッド、InsertCookie()メソッドを使用する場合 (推奨) • %request.GetCookie(“名前”,”デフォルト値”,”参照番号”) 戻り値に指定された名前の値を返します。 • %request %request.InsertCookie( InsertCookie(“名前” 名前 ,”値”) 値 ) 戻り値なしです。 CGI環境変数も同様の書式です。ただし変数名が一意となるため、 参照番号の指定は不要です。 46 Tips CSPサンプルの紹介 CSP サンプルの紹介 Caché には、CSP ページの様々なサンプルが用意されています。 • Inspector.csp • Error/LogError.csp • Redirect / ServerSideRedirect.csp • Object.csp • Query.csp Q • ZipCode.csp などなど....... 47 Tips ご参考資料 • http://127.0.0.1:57772/csp/samples/menu.csp CSPサンプルページ • http://127.0.0.1:57772/csp/docbook/DocBook.UI.Page.cls?KEY=GCSP_cspfaq オンラインドキュメント :「CSP に関するよくある質問」 • http://127.0.0.1:57772/csp/docbook/DocBook.UI.Page.cls?KEY=TWEB_preface オンラインドキュメント:「 Caché Web アプリケーション・チュートリアル」 • http://www.intersystems.co.jp/support/guide.html Caché技術ガイド(CSPガイド) 技術 ( ) • http://faq.intersystems.co.jp/csp/faq/FAQ.FAQTopicSearch.cls InterSystems FAQ (CSP以外にもよくある質問を掲載しています) 48 まとめ • CSPアプリケーションに問題があったとき、解決する為に、まず どこに原因があるのか、切り分けることが重要となります。 • 問題発生要因の特定に 問題発生要因の特定に、デバックツールやログを利用することで、 デバックツールやログを利用することで WEBサーバに原因があるのか、 CSPゲートウェイ・Cachéサーバの 設定に原因があるのか、ユーザ作成アプリケーションに原因があ るのかなど、確認できるようになります。 • それでも解決できない場合は、必要なログ情報を添えて、イン ターシステムズカスタマーサポートセンターまでご連絡ください。 Email:jpnsup@intersystems com Email:[email protected] 電話:0120-17-1972 49 CSP トラブルシューティング & Tips ありがとうございました 50
© Copyright 2024 Paperzz