Next Page

1

Previous Page

Thread: ColdFusionの動作不安定

Created on: 03/21/17 11:13 AM

Replies: 5

sekitanagatanien


新米


Joined: 03/21/17

Posts: 3

ColdFusionの動作不安定
03/21/17 11:13 AM

ColdFusion11 Apache2.4 Windows2008R2
の組み合わせでWEBサイトを構築しています。
DBはオラクルで同じサーバー内にインストールされています。

Coldfusionのスクリプトは合計で2千数百程度あります。
まだテスト段階で1人でいろいろなスクリプトを実行していますが、
時々レスポンスが帰ってこなくなり、ウェイト状態のままになります。
この時点でブラウザからCFMスクリプトを実行すると同じようにすべて
ウェイト状態になります。
この状態は数分(長くて10分程度)すると解消されるようで(時間はその時によって異なりますが)
ウェイト状態になっているものはもう先に進むことはありませんが、新たに実行したCFMは普通に動きます。

ただ何かの拍子にすぐに治ることもあってその時に止まってから時間がたっていないときは
ウェイト状態になっていたスクリプトがすべて一斉に動き出します。

また最初に止まってしまうスクリプトはいつも同じものではなく、
どこで止まるかわかりません。一度止まっても次に同じスクリプトをを実行すると、
問題なく動きます。

この状況からするとApacheに問題があるように感じますが、
こうなった時Coldfusionのサービスを再起動しても正常に戻ります。

それからクライアントは止まったままのときでも、
サーバーで直接http://localhost/~でCFMスクリプトを実行すると
正常に動きます。

以上いまわかっていることをすべて列挙しましたが、解決方法を指導していただけると
ありがたいです。

よろしくお願いします。
* Last updated by: sekitanagatanien on 3/21/2017 @ 11:16 AM *

Link | Top | Bottom

mur


新米


Joined: 06/04/07

Posts: 19

RE: ColdFusionの動作不安定
03/21/17 1:53 PM

今の状態だと可能性が多すぎて原因を絞るのが難しいです。
現象が発生する際にCFのログになにかエラーは発生していない
でしょうか。[cf_root]/cfusion/logs のapplicationログや
coldfusion-out.log, coldfusion-err.logあたりに情報が出て
いないかを確認して見てください。

考えられる原因の一部をあげるとこんな感じです:

1.外部リソースからの応答待ちで固まっている
 ・DBの処理が完了するのを待っていることやCFHTTPで
  外部サイトにHTTPリクエストして応答を待っている
 →DB側でロック待ちとかになっていないか
 →CFHTTPの処理にタイムアウト時間を設定しているか
 →スタンダード版を使っている場合、使っているJDBC
  ドライバがJVMの対応にあったものを使っているか、
  バージョンが古くないか

2.CFLockタグを使ったプログラム
 →ロックが解除されるまでに時間がかかっているところ
  がないか

3.とてつもなく重いプログラムが動いたために他のプログラムに
 影響が出ている
 →CPU使用率が100%で張り付いていないか
 →ログにOutOfMemoryエラーが出力されていないか

4.CF11のUpdateを最新にしたが、CF=Apacheの接続コネクタを更新
 していない
 →CF=Apacheの接続コネクタも適切に更新しているか

5.スタンダード版を使っていて、同時テンプレートリクエストの
 最大数を少なく設定している
 →最低値の10とかに設定し、間隔を入れずに時間の掛かる
  処理を複数実行していないか


あと、一点確認ですが、サーバーで直接http://localhost/~だと
正常に動くとのことですが、この状態だとApacheを使うことに
変わりはないのでDNSの名前解決等を疑うことになるので、不定期
に発生するのは考えづらいです。
http://localhost:8500~とかではないですか?その場合はApache
ではなく開発用Webサーバーを利用したリクエストの事を指すので
そのあたりが調査のポイントになると思います。

Link | Top | Bottom

sekitanagatanien


新米


Joined: 03/21/17

Posts: 3

RE: ColdFusionの動作不安定
03/21/17 2:45 PM

早い返信ありがとうございます。

使用しているのはCOLDFUSION11 スタンダード版です。
ORACLE11でドライバーは「ojdbc7.jar」を使用しています。

指摘があったログですが、
application.log,coldfusion-out.log, coldfusion-err.logなどにはログは何も出力されてはいません。

考えられる原因の一部をあげるとこんな感じです:

>1.外部リソースからの応答待ちで固まっている
> ・DBの処理が完了するのを待っていることやCFHTTPで
>  外部サイトにHTTPリクエストして応答を待っている
  私1人でテストをしていて、外部サイトにリクエストをしていないのでこれはないと思います。
> →DB側でロック待ちとかになっていないか
  DB側のロックはないと思います。DBの読み込みのみを1つずつ順番に処理をいているのでロックはかからないと思います。
> →CFHTTPの処理にタイムアウト時間を設定しているか
  リクエストタイムアウトは180秒になっています。
  CFHTTPの処理にタイムアウトというのはスタンダード版には設定項目がないのでしょうか?
> →スタンダード版を使っている場合、使っているJDBC
>  ドライバがJVMの対応にあったものを使っているか、
>  バージョンが古くないか
  ORACLE11でドライバーは「ojdbc7.jar」を使用しています。
>
>2.CFLockタグを使ったプログラム
> →ロックが解除されるまでに時間がかかっているところ
>  がないか
  CFLockタグは使用していません。
>
>3.とてつもなく重いプログラムが動いたために他のプログラムに
> 影響が出ている
> →CPU使用率が100%で張り付いていないか
  CPUはアイドリングが99%になっています。
> →ログにOutOfMemoryエラーが出力されていないか
  windowsのイベントログ、COLDFUSIONのエラーログには出力はありません。
>
>4.CF11のUpdateを最新にしたが、CF=Apacheの接続コネクタを更新
> していない
> →CF=Apacheの接続コネクタも適切に更新しているか
  これは特に何もしていませんでした。
ColdFusion 11 Update 11 で最新にはなっているのですが、
  CF=Apacheの接続コネクタの更新はどのようにすればよいのでしょうか?

>
>5.スタンダード版を使っていて、同時テンプレートリクエストの
> 最大数を少なく設定している
> →最低値の10とかに設定し、間隔を入れずに時間の掛かる
>  処理を複数実行していないか
  同時テンプレートリクエストの最大数は150を設定してあります。
>
>
>あと、一点確認ですが、サーバーで直接http://localhost/~だと
>正常に動くとのことですが、この状態だとApacheを使うことに
>変わりはないのでDNSの名前解決等を疑うことになるので、不定期
>に発生するのは考えづらいです。
  社内のイントラネットでDNSを使わずダイレクトにIPアドレスを入力しています。

>http://localhost:8500~とかではないですか?その場合はApache
>ではなく開発用Webサーバーを利用したリクエストの事を指すので
>そのあたりが調査のポイントになると思います。
  http://localhost:8500~はCOLDFUSION2016からではないでしょうか?
  このポートは使えないようで「Internet Explorer ではこのページは表示できません」
  のメッセージが表示されます。


今はこんな感じです。
よろしくお願いします。

Link | Top | Bottom

mur


新米


Joined: 06/04/07

Posts: 19

RE: ColdFusionの動作不安定
03/21/17 5:14 PM

ログにエラー等の情報が出ていない場合は、デバッグ用のログの出力を行い、
経過観察しないと難しいかもしれません。
(スタンダード版だとサーバーモニター機能も使えないので)

Administratorのデバッグの「ロギングの設定」で、「処理時間の遅いページの
ロギング XXX秒」の設定がありますので、これを有効にして、長時間待たされる
ページをログに出力してみて下さい。
タイムアウト時間が180秒とのことですが、それよりも遥かに長い時間待たさ
れて結果が戻ってきている場合は、外部リソース(または外部ライブラリを使用
した処理)が原因である事が考えられます。

さらに、現象発生中のサーバー動作を確認するために、Javaのスレッドダンプを
取得して、そこで原因となっているスレッドを調査する必要があるかもしれません。
下記のメーカーブログでスタンダード版でもプログラム(.cfm)で取得できる
スレッドダンプが紹介されています。
http://blogs.coldfusion.com/post.cfm/taking-thread-dumps-from-coldfusion-server-programmatically

上記の設定でもう少し詳細がわかれば良いのですが。
ちなみに私の場合は、それらで長期に時間が掛かるリクエストを特定して直し
ました(負荷が上がりやすい.xlsxファイルへ一度に大量の処理をしていたので、
処理を見直し、可能なものは.xlsファイルへ変更したりしました)。


接続コネクタは、Windows環境の場合は、[cf_root]/cfusion/runtime/binフォ
ルダ内の wsconfig.exe を実行すると、既存の接続コネクタの削除と再設定が
可能です。
既存のコネクタを[削除]して、その後[追加]で削除前と同じコネクタ設定を
すれば新しいバージョンにすることが出来ます。


あと、http://localhost:8500~は手動で設定ファイルを修正してON/OFFができ
ます。でも、今回はhttp://localhostで接続していたようですね。だとすると、
ここから原因を探るのは難しそうです。

Link | Top | Bottom

sekitanagatanien


新米


Joined: 03/21/17

Posts: 3

RE: ColdFusionの動作不安定
03/23/17 1:25 PM

いろいろとアドバイスありがとうございます。
昨日は私が有給だったため、回答できませんでした。

さて今回の現象を最初から考え直してみたのですが、
使っているすべての環境を記述はしていませんでしたので、その概要を書きますと
Coldfusionはバージョン9,10,11,2016とインストールされたサーバーがあり
WEBサーバーはIIS、Apacheと両方いくつか存在しています。
Apacheはバージョン10,11,2016があります。
その中で今回のような問題が発生したのは初めてです。

ただColdFusion11 Apache2.4 Windows2008R2(64bit)というのは初めてでした。
今まではApacheのcoldfusionはすべて32bitでした。

それでこちらでも調べていくうちに「mod_jk.so」に問題があるのでは?
と思うようになりました。インターネットで検索すると

https://forums.adobe.com/message/4893007#4893007

https://helpx.adobe.com/jp/coldfusion/kb/rhel-connector-configuration.html

のような記事がありました。後者のほうは発表日がいつか書いてありませんが、
バージョン2016も共通のようなのでそんなに古いものではないでしょう。
リナックス限定のようですが、バージョン10も共通のようなので、
この内容が今更発表されたのは訳が分かりません。
64bit Windows,ApacheでColdfusionを使うときはずっとApache2.0を使用していたのでしょうか?
先のほうの記事ではやはりWindowsとApacheの組み合わせはうちと同じくうまくいってないようで
このへんの理由でうまくいかないのだろうと思っています。


今回のご指摘にありました、

>ログにエラー等の情報が出ていない場合は、デバッグ用のログの出力を行い、
>経過観察しないと難しいかもしれません。
>(スタンダード版だとサーバーモニター機能も使えないので)

に関しては「mod_jk.so」で止まっているとすれば、
ColdfusionログにもApacheログにもなにもかかれない。という現状にもつじつまがあいます。
また、スクリプト内にデバッグを入れてもスクリプトそのものを実行するところまで行っていないので
ログも出力されないのではないかと思います。

なにか私の考え方でおかしなところがあったらご指摘いただけるとありがたいです。

よろしくお願いします。

Link | Top | Bottom

mur


新米


Joined: 06/04/07

Posts: 19

RE: ColdFusionの動作不安定
03/23/17 6:07 PM

お知らせ頂いたリンク先の情報を確認してみましたが、最初のリンクは
CF10は2014年のUpdate14までApache2.4系では正しく動かなかったようで、
そのときのトラブルっぽいです。

もう一つはRedHat5.x系のApacheとCF10との接続でトラブった時の記事で
それ以降はサポート外のOSを使わない限りはソースからのコネクタ(mod_jk.so)の
ビルドは必要ないのでこちらも該当しないです

ただ、CF11自体もリリース時点ではApache2.4系はサポートされていなく、
Update3以降から Apache2.4系のサポート(ただし2.4.9まで)が追加され、
その後も Update5でApache2.4.10がサポートされたり、Update7 や
Update11 でもコネクタの修正が入っているので、コネクタも最新にあげて
試してみるのはアリかと思います。Update 11を適用済みとのことなので、
wsconfig.exeで一旦既存のコネクタを削除して再度設定すれば最新になります。
* Last updated by: mur on 3/23/2017 @ 6:09 PM *

Link | Top | Bottom

Next Page

1

Previous Page

New Post

Please login to post a response.