2

つまり、タイトルがすべてを物語っています。単一サーバーの ColdFusion インストールから複数サーバーの ColdFusion インストールに切り替えているのですが、アプリケーション名を設定するとセッション レプリケーションが機能しません。

これは、セッションを正常に複製しない単純な application.cfc です。

    component 
    {
        this.name                = 'myTestApp';
        this.sessionManagement   = true;
        this.sessionTimeout      = createTimeSpan(0,2,0,0);
    }

アプリケーション名をコメントアウトするとすぐに、サーバー間でセッション複製が完全に機能します。

このアドビのヘルプページは、問題を接線で参照していると思います。

Application.cfc 初期化コードの This.name 変数でアプリケーション名を指定しない場合、または ColdFusion cfapplication タグを使用してアプリケーション名を指定しない場合、アプリケーションは無名になり、Application スコープは ColdFusion J2EE サーブレット コンテキストに対応します。したがって、ColdFusion は名前のない単一のアプリケーションのみをサポートします。

複数の cfapplication タグと Application.cfc ファイルでアプリケーション名が指定されていない場合、これらのアプリケーションのすべてのページは、アプリケーション スコープとしてサーブレット コンテキストを共有します。名前のないアプリケーションのすべてのセッションは、J2EE アプリケーション サーバーのセッション オブジェクトに直接対応します。(J2EE セッション変数を使用しない場合、ColdFusion は、J2EE セッションが少なくともセッション タイムアウトまで持続することを保証します。)"

の使用をやめるのがベスト プラクティスと見なされていないことは明らかapplication.nameです。しかし、名前付きアプリケーションを使用するときにサーバーがセッションを使用できるようにするにはどうすればよいでしょうか? アプリケーション名を J2EE/JRun サーブレット コンテキストに登録する方法はありますか? サーバー上で実行している CF アプリケーションごとに個別のインスタンス クラスターをセットアップするのは好ましくありません。スケーラブルなソリューションとは思えません。

Java の第一人者ではなく、おそらくここで非常に単純なものが欠けているように感じますが、ヒントをいただければ幸いです。

4

2 に答える 2

2

ColdFusion (J2EE) クラスタリングを使用して多数のクラスタを構成し、定義された ColdFusion アプリケーションで常にセッション レプリケーションを確実に実行しています。バージョン 6.1 から 8 ではこれが非常に困難であったことは間違いありませんが、CF9 では確実に改善されました。ただし、ColdFusion のクラスタリングは単純なポイント アンド クリック操作ではなく、慎重に作成する必要があります。すべてのサーバーで複数のインスタンスを作成することから始めます。その時点で、各インスタンスが期待どおりにコンテンツを個別に提供していることを確認するためのチェック。次に、クラスターを作成してメンバーを追加します (最近作成およびテストされたインスタンス)。

「スティッキー セッション」で「ラウンド ロビン」を設定することをお勧めしますが、クライアントがラウンド ロビンのみを使用できるようにすることに成功しました。このプロセスのすべての段階で、変更または追加が行われるたびにすべてのインスタンスを再起動することが重要{instance}-out.logです。このスレッドで Barney がよく述べているように、クラスタに関連するエラーがないことを確認するために、再起動するたびに をチェックする必要があります。にクラスタリング エラーがない場合にのみ、クラスタリングが{instance}-out.log正しく機能しており、クラスタが完全に構成されるまで判断や仮定を行わないでください。

于 2012-10-01T14:01:07.277 に答える
0

ここにいくつかの考えがあります:

  • 両方のCFインスタンスでJ2EEセッションを有効にしていますか?
  • CFサーバーは両方ともまったく同じバージョンのCFとJRun上にありますか?
  • 彼らは同じバージョンのJavaを実行していますか?

JRunまたはColdfusionのログに何か表示されていますか?

セッションの複製に失敗した場合は、ログにそのことについての言及が表示されると思います。信頼性の問題(主にクラスターメンバーの数が多い)のためにJRun / CFでのセッションレプリケーションをあきらめましたが、アプリケーション名を持つアプリで実行していたので、それは可能だと思います。

于 2012-10-01T08:31:14.857 に答える