The following is a list of known client limitations and issues with different vendor VMs that are supported by Nexaweb Platform.
These issues may represent known defects within specific JVM versions or may simply be limitations of those versions. There may not be publicly documented defects corresponding to entries in these lists - these are issues that have come out of Nexaweb Quality Assurance efforts.
For more information on defects and limitations for specific VMs see the following web sites:以下の一覧は、Nexaweb Platform がサポートするさまざまなベンダの VM に関する既知のクライアント制限および問題を示しています。
これらの問題は、特定の JVM バージョンに含まれる既知の欠陥を表す場合と、各バージョンの単なる制限にすぎない場合があります。この一覧に含まれる問題は、Nexaweb の品質保証活動によって明らかにされた問題であり、公式にドキュメント化されている欠陥とは一致しない可能性があります。
特定の VM の欠陥および制限の詳細については、次の Web サイトを参照してください。
Sun JVM | |
Microsoft JVM | query on: で「"java virtual machine" kbprb kbenv」とキーワードに指定して検索 |
Sun JVM 1.6
Nexaweb Platform 4.1.8, 4.2.9, and 4.5.3 were all tested against は、全て Sun JVM 1.6 . There are several issues which we will work towards resolving in future maintenance releases.
...
のテストを完了しています。 将来のメンテナンスリリースで解決するべくこれらの問題に取り組んでいきます。
- tabOrder: タブキーでキーボードナビゲーションを使用する際、フォーカスが正確に移行しない
- NFC: いくつか問題が報告されている。技術部が現在調査中
Sun JVM 1.3
...
および 1.4
Network Timeoutネットワークタイムアウト
In Sun JVM の 1.3 and および 1.4 there is no programmatic means of setting network (socket call) read and connect timeout. This can lead to problems with push connection connections where the connection can get permanently blocked in a read or close socket call.
RetrieveAsynchronously and RetrieveAndProcessAsynchronously use a seperate thread for requests. This thread may block indefinitely under rare conditions but will not cause application issues. Internal network mechanisms, such as XInclude, use this method to make network requests and are not at risk.
Retrieve and RetrieveAndProcess are synchronous calls and may block indefinitely under rare conditions. Use of the asynchronous calls is encouraged.
Starting with Sun JVM 1.4 a system argument may be passed to the VM via the Java Control Panel to set a global timeout. This is set with the command: では、ネットワーク (ソケット呼び出し) の読み取りおよび接続のタイムアウトをプログラムで設定できません。これにより、プッシュ接続で問題が発生し、読み取りまたは切断ソケット呼び出しの際に接続が恒久的にブロックされる可能性があります。
RetrieveAsynchronously および RetrieveAndProcessAsynchronously は、独立したスレッドを使用してリクエストを実行します。このスレッドは、非常に限定された条件の下で無期限にブロックする可能性があります。ただし、アプリケーションに問題が発生することはありません。XInclude などの内部ネットワークメカニズムは、このメソッドを使用してネットワーク リクエストを実行しますが、リスクはありません。
Retrieve および RetrieveAndProcess は同期呼び出しであり、非常に限定された条件の下で無期限にブロックする可能性があります。非同期呼び出しの使用をお勧めします。
Sun JVM 1.4 以降では、グローバルタイムアウトを設定するシステム引数を Java Control Panel 経由で VM に渡すことができます。このタイムアウトは次のコマンドで設定します。-Dsun.net.client.defaultReadTimeout=NNN where NNN should be an integer value that specifies the timeout in miliseconds.This issue will have a workaround provided in (NNN はタイムアウトをミリ秒単位で指定する整数値)。
この問題の回避方法は、Platform 4.1.5 and および Platform 4.5 +以上で提供される予定です。
Sun JVM 1.3
SSL and Push Connectionsおよびプッシュ接続
Sun JVM 1.3 has known issues with SSL over a push connection. The VM networking layer will not delivery content over an SSL HTTP stream until the entire stream has been read from and closed. This precludes push connection operation. In this environment Polling should be used.Calling openPushConnection() in には、プッシュ接続越しの SSL に関する既知の問題があります。VM のネットワーク層は、ストリーム全体を読み込んで閉じるまで、SSL HTTP ストリーム越しにコンテンツを配信しません。これによりプッシュ接続操作が妨げられます。このような環境では、ポーリングを使用する必要があります。
Sun JVM 1.3 will cause a ProtocolException.Another option is to configure a flush policy to periodically close the push connection and force the data to be delivered. In this case the following setting in で openPushConnection() を呼び出すと、ProtocolException が発生します。
もう 1 つの回避方法は、プッシュ接続を定期的に閉じるフラッシュポリシーを構成し、データを強制的に配信することです。この場合は、nexaweb-client.xml can be set to true to avoid the ProtocolException:で次の設定を true に設定することで、ProtocolException の発生を回避できます。
/client-app/launch-configuration/allow-push-in-unsupported-environments
Microsoft JVM 1.1
Push Connection Issues
The last few bytes of an HTTP stream are not available until the stream is closed or more bytes are sent from the server. This will cause issues with Push Connections as data is buffered and not available to the client. Nexaweb provides a default flush policy - provided below - that will push 5 kb of data to force the buffer to be sent to the client. プッシュ接続の問題
HTTP ストリームの最後の数バイトは、HTTP ストリームが閉じられるか、サーバーから追加バイトが送信されるまで利用できません。これにより、データがバッファに入れられ、クライアントから利用できなくなるため、プッシュ接続で問題が発生します。Nexaweb には、5 kb のデータをプッシュし、バッファを強制的にクライアントに送信するデフォルトのフラッシュポリシーが用意されています。次に例を示します。
Code Block |
---|
<policy> <rules> <match xpath="starts-with(/client-info/java-version, '1.1')" /> <match xpath="starts-with(/client-info/java-vendor, 'Microsoft')" /> </rules> <configuration class="com.nexaweb.server.pushconnection.flushpolicies.IdlePeriodFlushPolicy"> <flush-size>5 K</flush-size> <period>100 millis</period> </configuration> </policy> |
Mouse Cursor
The mouse cursor in the Microsoft JVM has a non standard behavior from later VMs. The mouse cursor may retain a shape unexpectly. Most of these issues have been worked around in later versions of Nexaweb Platform マウスカーソル
新しいバージョンの Microsoft JVM では、マウスカーソルの動作が標準とは異なります。マウスカーソルは予期しない形状を保持する場合があります。新しいバージョン (4.1 and および 4.2) .の Nexaweb Platform では、こうした問題の大部分が解決されています。
Input Method Editor (IME)
Microsoft JVM 1.1 and Sun VMs prior to および 1.3 do not provide native IME support. The support is therefore provided via a heavyweight component -- this has minor integration issues and non-standard behavior with the lightweight Nexaweb UI components. Later VMs have native IME support.
Limitations with User Interface Elements
Newer user interface interaction features - such as the Mouse Scroll Wheel and Mouse triple click actions - are not supported in MS JVM and not passed to the applet as events.
Internet Explorer Shortcut Keys
Microsoft Internet Explorer shortcut keys are processed but not consumed by Microsoft JVM. If the Nexaweb application uses the same shortcut key mappings they will cause the executed keystroke to be processed twice; once by the Nexaweb application and once by Internet Explorer.
Network Timeout
MS JVM does not provide a network timeout feature, however calls that block indefinitely are rare. See Network Timeout below for more details.
Using non 1.1 compliant Java
The Nexaweb client will hang if MCO onLoad() methods make use of non Java 1.1 compliant features such as Vector.add().
より前の Sun VM では、ネイティブの IME サポートが提供されません。したがって、このサポートはヘヴィウェイトコンポーネントを介して提供されます。そのため、ライトウェイトな Nexaweb UI コンポーネントを併用すると統合に関する軽微な問題が発生し、標準とは異なる動作になります。新しいバージョンの VM では、ネイティブの IME サポートが提供されます。
ユーザーインターフェイス要素に関する制限
マウスのスクロールホイールやトリプルクリックなどの新しいユーザーインターフェイス対話機能は、MS JVM ではサポートされません。したがって、これらの機能はイベントとしてアプレットに渡されません。
Internet Explorer のショートカットキー
Microsoft Internet Explorer のショートカットキーは、Microsoft JVM によって処理されます。ただし、Microsoft JVM がこれらのショートカットキーを使用することはありません。Nexaweb アプリケーションが Internet Explorer と同じショートカットキーマッピングを使用する場合、実行されたキーストロークは、Nexaweb アプリケーションで 1 回、Internet Explorer で 1 回、合計 2 回処理されることになります。
ネットワークタイムアウト
MS JVM ではネットワークタイムアウト機能が提供されません。ただし、無期限にブロックする呼び出しはほとんど発生しません。詳細については、以下の「ネットワークタイムアウト」を参照してください。
Java 1.1 に準拠しない機能の使用
Vector.add() など Java 1.1 に準拠しない機能を MCO onLoad() メソッドで使用した場合、Nexaweb クライアントがハングアップします。