問題タブ [jrun]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ColdFusion 9 のデッドロックの問題を解決する方法: coldfusion.util.AbstractCache$Lock
特定のスクリプトを実行するとデッドロックが発生し、後続のすべてのリクエストが不安定になり、CPU の 99.9% を使用し、最終的にサーバーが効果的にクラッシュするという問題を解決しようとしています。
これは、リンボに置かれた (永遠に待機している) リクエストの 1 つのスタック トレースの例です。
興味があれば、上部にある「ロック スクリプト」と呼ばれる完全なスタック トレースと、それを待機している他のすべてのスタック トレースを確認できます。
この問題に初めて遭遇したとき、スタック トレースはありませんでした。私は、「 ColdFusion が CPU を使い果たしているときに、何を噛んでいる/窒息させているかを調べるにはどうすればよいですか? 」という質問を投稿しました。多くの有益な回答を受け取り、スタック トレースを調べたところ、このデッドロックの問題を何度も引き起こしているのは同じ 3 つのスクリプトであることがわかりました。
いずれの場合も、「ロック スクリプト」の一番上の行には次のように書かれています。
そして、他のすべてのリクエストはその背後に詰まっており、それぞれのスタック トレースに次の行があります。
私を悩ませていたのは、リクエストのタイムアウトが尊重されなかった理由です。これらのスクリプトは永久にハングアップし、死ぬことはありません。なんてことだろう?だから私は自分でやらなければなりませんでした。そのため、「ロック スクリプト」を強制終了すると、他のスクリプトは辺鄙な状態から解放されます。その時点で、リクエストのタイムアウトを下回っている場合は処理を終了し、それを超えている場合 (ほとんどの場合はそうです)、単にタイムアウトに進みます。しかし、それらは単独でタイムアウトすることはなく、アクティブなスレッドが使用され、スレッド キューがいっぱいになり、すべてが処理されるまで、要求が積み重なっていきます。
要求されるたびにこれらを手動で強制終了することは明らかに解決策ではありません。そのため、妻がいつも思い出させてくれるように、「デバッグ、デバッグ、デバッグ」してください。条件<cfabort>
を使用してステップスルーしたところ、Application.cfm、header.cfm、そして<cfinclude>
問題のスクリプトの . 問題のスクリプトの<cfabort>
内部(最上部であっても) を配置すると、中断せず、デッドロックの問題が発生します。インクルードの直前に配置すると、リクエストが中止され、デッドロックの問題が回避されます。奇妙です。
これら 2 つの場所の間にコードはありませんよね?インクルードの直前とインクルードのすぐ内側は機能的に同等であるはずですよね?明らかに何かがそこで起こっているので、おそらくそうではありません。
<cflock>
タグは一切使用しておりません。発生しているロックは、テンプレート キャッシュ レベルで発生しているようです。admin で「Trusted Cache」、「Cache Template In Request」、または「Component Cache」オプションがオンになっているかどうかに関係なく、同じ動作が観察されます (オン/オフの任意の組み合わせで)。テンプレート キャッシュをクリアし、各コンポーネントキャッシュを複数回.CFサーバーを何度も再起動しました...すべて役に立ちませんでした.
トラブルシューティング中に、CF8 (8.0.1) のコンパイラ キャッシュ ロックに関する同様の問題と、それを修正するためのパッチを適用する手順について説明しているこの記事を読みました。しかし、それは CF9 ではないので、明らかに彼らのパッチを適用することはできません。
何をすべきか?他の誰かがこの問題に遭遇しましたか? ...解決策はありますか?
coldfusion - JRUNプロセスはCPUを100%消費します
定期的にColdFusion8でパフォーマンスの問題が発生します。3つのフロントエンドサーバーのファームでは、1つが使用できなくなります。何らかの理由で、CPUが100%(1つのコアで)停止し、ダウンすることはありません。Windowsタスクマネージャを確認すると、jrunプロセスがCPUを100%使用しているように見えます。
誰かがそれのトラブルシューティングを開始する方法についての手がかりを持っていますか?そもそもスパイクの原因を突き止める方法。私は.netにもっと興味があり、java/jrunのトラブルシューティングに関しては少し迷っています。
現在の構成は次のとおりです。Windows2008R264ビットで実行されているCF8、Oracle 11gクライアント、4GB RAM、デュアルコアCPU。
coldfusion - 組み込みのWebサーバーのリモートサーバー上のリソースへの仮想マッピングを設定するにはどうすればよいですか?
ライブセットアップでは、IISと仮想ディレクトリを使用して、別のサーバーに保存されている画像やPDFなどにアクセスします。CF9の開発版で組み込みのWebサーバーを使用して、同様の設定を試みています。
これまでのところ、cfdirectoryを使用して、そのリモートソースにあるファイルを正常にダンプできます。これは、CF9アプリサーバーにログオンさせる必要がありました。
フォルダをリモートサーバーからローカルPCにコピーし、仮想マッピングエントリをjrun-web.xmlに追加できます。これは正常に機能しますが、これは私たちの目的には理想的ではありません。
ただし、そのリモートサーバーに直接マップすることはできません。私は試した
と
そして、ネットワークドライブをマッピングしてみました
そのすべてが/login/ images /directory/内のすべてに404をもたらします
apache - mod_rewrite URL パラメータに REQUEST_URI を追加し、ColdFusion で処理
ColdFusion と組み合わせた mod_rewrite には奇妙な問題があります。
virtualhost-configuration で次の書き換えルールを使用しています。
1つのことを除いて、すべてが正常に機能しています:
http://www.example.com/test/?asdf
このようにURL.original_url
読み取りを呼び出した場合、original_url=/test/index.php&asdf
インデックスがある理由がわかりません。phpが入っています。
私はすでに PT フラグを省略しようとしましたが、それなしでは機能しません。たとえば、すべてのページがhttp://www.example.com/test/
返さ403 - Forbidden
れ、ページのタイトルに「JRun サーブレット エラー」と表示されます。
これについてのアイデアをありがとう!
編集:
わかりました、重要なことを見逃していました:フォルダー/test/
は実際に私のドキュメントルートに存在します! のような他の URL/test/does_not_exist/
は、説明されている問題の影響を受けません。
要約する:
http://www.example.com/test/
->URL.original_url
取得/test/index.php
http://www.example.com/test/does_not_exist/
->期待される動作をURL.original_url
取得します。/test/does_not_exist/
java - jstack 100% CPU
そのため、アプリケーションが時折 100% の CPU を消費する理由を突き止めようとして行き詰まってしまいました。私はいくつかの非常に役立つstackovertflowの投稿を読みましたが、安全を期すために、アドバイス...ガイダンス...支援...何でも受けたいと思います。実際にこれが起こるのは、スタック トレースを調べた経験不足です。誰かがここで考えられる犯人を指摘し、そのポインタを示してくれれば、これをよりよく理解できると本当に感謝しています.
注目すべきスレッド (私にはそう思われる) は、モニターを待っているスレッドです。
jakarta-ee - ColdFusion 9 マルチサーバー セットアップ: アプリケーション名を設定するとセッションの複製が妨げられる
つまり、タイトルがすべてを物語っています。単一サーバーの ColdFusion インストールから複数サーバーの ColdFusion インストールに切り替えているのですが、アプリケーション名を設定するとセッション レプリケーションが機能しません。
これは、セッションを正常に複製しない単純な application.cfc です。
アプリケーション名をコメントアウトするとすぐに、サーバー間でセッション複製が完全に機能します。
このアドビのヘルプページは、問題を接線で参照していると思います。
Application.cfc 初期化コードの This.name 変数でアプリケーション名を指定しない場合、または ColdFusion cfapplication タグを使用してアプリケーション名を指定しない場合、アプリケーションは無名になり、Application スコープは ColdFusion J2EE サーブレット コンテキストに対応します。したがって、ColdFusion は名前のない単一のアプリケーションのみをサポートします。
複数の cfapplication タグと Application.cfc ファイルでアプリケーション名が指定されていない場合、これらのアプリケーションのすべてのページは、アプリケーション スコープとしてサーブレット コンテキストを共有します。名前のないアプリケーションのすべてのセッションは、J2EE アプリケーション サーバーのセッション オブジェクトに直接対応します。(J2EE セッション変数を使用しない場合、ColdFusion は、J2EE セッションが少なくともセッション タイムアウトまで持続することを保証します。)"
の使用をやめるのがベスト プラクティスと見なされていないことは明らかapplication.name
です。しかし、名前付きアプリケーションを使用するときにサーバーがセッションを使用できるようにするにはどうすればよいでしょうか? アプリケーション名を J2EE/JRun サーブレット コンテキストに登録する方法はありますか? サーバー上で実行している CF アプリケーションごとに個別のインスタンス クラスターをセットアップするのは好ましくありません。スケーラブルなソリューションとは思えません。
Java の第一人者ではなく、おそらくここで非常に単純なものが欠けているように感じますが、ヒントをいただければ幸いです。
coldfusion - URLに含まれていない場合、デフォルトのドキュメントは処理されません
JRun(J2EEインストール)、Windows Server 2008 R2、Java1.6.0_22でColdFusion9,0,1,274733を実行する
他の誰かがデフォルトのドキュメントindex.cfm
をColdFusionで動作させるのに問題がありましたか?これはセットアップのせいで問題になるだけだと思います。別のWebサーバー(IIS)とアプリケーションサーバー(ColdFusion)。この構成を実行しているのは私たちだけだとは想像できません。私たちは?
だからここに問題があります。http://mysite.com/index.cfm
をリクエストすると、機能します。http://mysite.com/
をリクエストすると、機能せず、404が返されます。
IISサーバーでWebコネクタのログファイルを確認したところ、ColdFusionサーバーにリクエストが送信されていることがわかりました。ColdFusionサーバーから404エラーコードが返送されていますが、その理由がわかりません。IISサーバーにデフォルトのドキュメントが設定されていますindex.cfm
。また、アプリケーションサーバー(web.xml)<welcome-file-list>
に含めるセットもあります。index.cfm
含まれていない場合のWebコネクタのログからindex.cfm
:
以下を含める場合は、Webコネクタのログからindex.cfm
:
この問題は、IISのURL書き換えモジュールを使用してURLに追加index.cfm
することで回避できました。それは機能しますが、私の腸は、そのような基本的な機能のためにそれを行う必要はないはずだと私に言い続けています。
他にこの問題を抱えている人はいますか?どうやってこれを回避しましたか?
いくつかの情報を追加して編集
IISサーバーからの私のサイトのweb.configファイルの内容は次のとおりです。
APPサーバーweb.xmlのファイルの内容の一部を次に示します。
flash - フラッシュから/flashservices/gatewayを呼び出す
現在、ColdFusion 8の同じ構成(私が知る限り)を実行している2台のサーバーがあります。
- 同じデータソース構成
- 同じマッピング
- 同じJVM構成
- 同じフォルダ構造
- 同じコード
Flashリモーティングを使用して、1つのコンポーネントのデータでフラッシュアセットをカスタマイズしています。
1つのサーバーでは、呼び出しは正常に機能しています。
他のへの同じ呼び出しは失敗しています:
前述のように、両方のボックスの構成を比較したところ、どちらも問題ないようです。
また、呼び出されたコンポーネントにロギングコードを追加しました。作業中のマシンでは、ロギングが実行されます。障害が発生したマシンでは、ログは生成されません。したがって、コードはまったく評価されないのではないかと思います。
どんなリードでも大歓迎です。
coldfusion - Coldfusion JVM に追加のメモリを割り当てることができません
良い一日、
Windows 2003 32 ビット サーバーで 4GB の RAM (2GB は常に無料) で Coldfusion 8 MX を実行していますが、JVM に 550m 以上を割り当てることができません。
私はすでにこの質問を提出していましたが、長すぎてすべての編集内容がわかりにくくなりました。起動に最も近づいたのは、-Xmn を設定したときで、クラッシュする前に 10 分間実行されました。クラッシュした後、同じ引数を使用しても、再び 1024m で開始されませんでした。
これらのクラッシュ ログは Java 1.6.0_38 用です。Java 5 で試してみましたが、同じ結果が得られます。Java 7 で CF8 を起動することさえできません (これは別の問題です)。
CF が重い負荷の下でクラッシュし続けないように、JVM により多くの RAM を割り当てる必要があるため、この動作についての洞察をいただければ幸いです。
Java 引数は次のとおりです。
クラッシュ ログ #1 (サーバーは、これを生成する前に 10 分間実行されました):
クラッシュ ログ #2 (クラッシュした直後に、同じ構成で CF サービスを再起動しようとしましたが、起動すらせず、このエラーが発生しました):
coldfusion - ColdFusion はセッションをどのようにマップしますか?
ColdFusion 9.0.1 を使用していますが、IE では、サブドメインに続いてルート ドメイン (例: www.example.com example.com) にヒットすると、2 セットのセッション Cookie (CFID、CFTOKEN、JSESSIONID) が取得されることに気付き始めています。 )
ColdFusion は、この事実をうまく管理し、セッションを適切なセッション変数と適切に一致させることができるようです。
ColdFusion/JRUN がセッション変数のマッピングを処理する方法を理解しようとしています。アプリケーション名が方程式の一部であることは知っていますが、複数の JSESSIONID Cookie がある場合はどうなりますか。どちらが正しいかをどのように決定しますか?