Java バックエンドを持つFlex アプリケーションがあり、途中で BlazeDS を使用しています。
Tomcat を Java アプリケーション サーバーとして使用します。Tomcat は、物理サーバーまたは仮想サーバーでアプリを自己ホストするクライアント ベースで問題なく動作します。
AWS の新しいインスタンスにデプロイをセットアップしました。インスタンス自体からアプリケーションを正常にヒットできますが、自宅と職場のマシンのブラウザーでパブリック DNS を介してヒットすると、次のメッセージが表示されます。
重複した HTTP ベースの FlexSession が検出されました。これは通常、リモート ホストがセッション Cookie を無効にしていることが原因です。クライアント接続を正しく管理するには、セッション Cookie を有効にする必要があります。
クライアント側のログにはもう少し情報があり、エラーが発生する前に 2 つの呼び出しが行われていることがわかります。
6:58:01:542 pm [INFO] au.com.esriau.dekho.business.AbstractDelegate - calling SessionService.getSessionInfo
6:58:01:543 pm [DEBUG] au.com.esriau.dekho.business.AbstractDelegate - args: (Array)#0
[0] "0A86A336:0137C62A4BBD:ADB6:1191EBC5"
6:58:01:544 pm [INFO] au.com.esriau.dekho.view.original.CoordinatesView - initilization
6:58:01:545 pm [INFO] au.com.esriau.dekho.business.AbstractDelegate - calling ConfigurationService.getCoordinateSystems
6:58:01:545 pm [DEBUG] au.com.esriau.dekho.business.AbstractDelegate - args: (Array)#0
[0] "0A86A336:0137C62A4BBD:ADB6:1191EBC5"
6:58:01:546 pm [INFO] au.com.esriau.dekho.view.original.ScaleView - initilization
6:58:01:991 pm [ERROR] au.com.esriau.dekho.utilities.AlertUser - a fault has occurred
- Fault Details:
- Fault Code: Server.Processing.DuplicateSessionDetected
- Fault String: Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly.
SE-SO を介していくつかの素晴らしいリンクを見つけたので、このエラーの 説明がわかりました。
- 私のブラウザでは Cookie が無効になっていないため、除外できます。
- 私は AWS でロード バランシングをまったく実装していません。その 1 つのインスタンスがヒットしただけです。
- Firebug とクライアント側のログを見ると、Flex アプリが 2 つのリクエストを行っている痕跡は見当たりません。
したがって、この問題が特に AWS で発生している理由はわかりませんが、私たちのラボやクライアントの自己ホスト型マシン、またはIBM の Iaasプラットフォーム上にあるインスタンスでは発生しません。
これが以前に発生したのを見た人はいますか (具体的には、AWS が混在している場合)、回避策を見たことがありますか?
参考までに: 私は開発者ではなくテスターですが、必要に応じて詳細情報を入手できます。コメントで質問してください。