ページの先頭です。
ここから本文です。

お知らせ

[WebOTX] クライアントが送信したデータがWebOTXで受信できない問題と対策について


概要

WebSocketプロトコルで処理中のコネクションが割り当てられない状態となり、クライアントが送信したデータ
がWebOTXで受信できなくなります。


影響のある製品

  • WebOTX Application Server Express V9.3
  • WebOTX Application Server Standard V9.3
  • WebOTX Application Server Enterprise V9.3
  • WebOTX Developer V9.3


詳細

WebOTXでは、クライアントから接続したコネクションをセッション情報を付加したチャネルを介して
スレッドに割り当ててリクエスト処理を行います。コネクションが切断されるとチャネルをプールし、
新たなコネクションが接続されたときに再利用します。

WebSocketプロトコルで送信中にクライアントからコネクションを切断された際、Webアプリケーションが
送信バッファに書き込んだ一部のデータしかクライアントへ送信していない場合、チャネルをプールに
登録する処理でタイミングによっては同一チャネルを2つプールに登録してしまいます。
この問題により処理中のコネクションが新規に接続してきたコネクションに置き換わる事象が発生し、
処理中であったコネクションがスレッドに割り当てられない状態となります。その結果、クライアントが
送信したデータがWebOTXで受信できなくなります。


対処方法

製品に対するパッチの公開時期は現在検討中です。急ぎでパッチが必要な場合はご連絡ください。

(注意) パッチモジュールは製品保守契約を結んでいただいたお客様に限定して提供させていただいています。
まだ契約がお済みでないお客様は、保守契約締結の後、ダウンロードをお願いいたします。


回避方法

同一のチャネルを2つプールに登録する問題であるため、チャネルおよびチャネルに関連する設定をプール
しないように変更して回避します。

チャネルをプールしない設定はotxadminコマンドで次のように設定します。

  
   otxadmin> login --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <対象ドメインの管理ポート>
   otxadmin> set server.network-config.protocols.protocol.http-listener.http.property.socket\\.bufferPool=0
   otxadmin> set server.network-config.protocols.protocol.http-listener.http.property.socket\\.processorCache=0
   otxadmin> set server.network-config.protocols.protocol.http-listener.http.property.socket\\.eventCache=0
   otxadmin> set server.network-config.protocols.protocol.http-listener.http.property.socket\\.keyCache=0

設定後、ドメインを再起動してください。


※HTTP(ws)用の設定です。HTTPS(wss)用の場合は"http-listener" 部分を"https-listener"に読み替えて
ください。

それぞれの設定の意味は次の通りです。
bufferPool:クローズ済みのチャネルをプールする上限数
processorCache:チャネルとともにスレッドの紐つけに使用するプロセッサをプールする上限数
eventCache:コネクションごとで発生したイベント情報をプールする上限数
keyCache:コネクションを管理するキー情報をプールする上限数


更新履歴

2020/01/07 初版

製品名カテゴリ

WebOTX Application Server

対象製品

品名: WebOTX Application Server Express/Standard/Enterprise V9.3
品名: WebOTX Developer V9.3
  • コンテンツID: 3010102940
  • 公開日: 2020年01月07日
  • 最終更新日:2020年01月08日
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。