"javax.websocket.RemoteEndpoint.Async#sendBinary()" はメッセージ送信前に戻らない
(Doc ID 2648797.1)
Last updated on MARCH 12, 2021
適用範囲:
Oracle WebLogic Server - バージョン 12.1.3.0.0 から 12.2.1.4.0 [リリース 12c]この文書の内容はすべてのプラットフォームに適用されます。
現象
次の RemoteEndpoint.Async#sendBinary() のドキュメントは、"This method returns before the message is transmitted"(このメソッドはメッセージ送信前に戻る)と説明しています。
しかし、実際に "javax.websocket.RemoteEndpoint.Async#sendBinary()" は、メッセージ送信前に戻りません。(メッセージ送信前に "javax.websocket.RemoteEndpoint.Async#sendBinary()" の処理が完了しません。) 例えば、"RemoteEndpoint.Async#sendBinary()" メソッド実行中に、ネットワークが切断した場合、WLS はこのメソッドを完了できません。そのために、アプリケーションは、"RemoteEndpoint.Async#sendBinary()" を実行した箇所でスタックしているようにみえます。
次は、WebSocketSample#echo() サンプルコードが "RemoteEndpoint.Async#sendBinary()" メソッドを実行した際のスレッドスタックの一例です。サンプル・アプリケーションは、ネットワークが切断された際、次のようにスタックします:
変更点
原因
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
本書の内容
現象 |
変更点 |
原因 |
解決策 |
参照情報 |