2017-11-23 3 views
0

私はEAP 7.1.0 CR2を実行していますが、リモーティング接続のチャネル作成オプションに何か不思議なことがあります。リモートEJB呼び出しの場合オプション設定がxnioレイヤーに設定されていません。 TCP_NODELAYプロパティが、作成時に指定した値に設定されていないことがわかりました。チャネルでリモートチャネル作成オプションの値が設定されていない

が私のスタンドアロン・full.xmlファイルでは、私のリモート接続XNIOプロパティが

<remote connector-ref="http-remoting-connector" thread-pool-name="ejbWorker"> 
    <channel-creation-options> 
     <option name="READ_TIMEOUT" value="${prop.remoting-connector.read.timeout:20}" type="xnio"/> 
     <option name="TCP_NODELAY" value="false" type="xnio"/> 
     <option name="WORKER_READ_THREADS" value="2" type="xnio"/> 
     <option name="WORKER_WRITE_THREADS" value="2" type="xnio"/> 
     <option name="MAX_INBOUND_MESSAGES" value="300" type="remoting"/> 
     <option name="MAX_OUTBOUND_MESSAGES" value="300" type="remoting"/> 
    </channel-creation-options> 
</remote> 

で設定されている私は、リモート・サブシステムは、これらの設定を期待したいです。しかし、XNIOに記録されているTRACEはそうではないことを示しています。ここにログメッセージがあります。

2017-11-22 19:42:20,170 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: JBoss EAP 7.1.0.GA (WildFly Core 3.0.3.Final-redhat-1) started in 265750ms - Started 1371 of 1652 services (502 services are lazy, passive or on-demand) 
2017-11-22 19:43:22,937 TRACE [org.jboss.remoting.remote.connection] (ejbWorker I/O-2) Initialized connection from /192.168.0.4:48861 to /192.168.0.4:8084 with options {org.xnio.Options.TCP_NODELAY=>true,org.jboss.remoting3.RemotingOptions.SASL_PROTOCOL= 
>remote,org.xnio.Options.REUSE_ADDRESSES=>true} 

org.jboss.as.remoting.HttpConnectorAdd.launchServices方法プロパティのマップを取得するためにorg.jboss.as.remoting.ConnectorUtils.getFullOptionsを使用wildflyコアのリモート・サブシステム内のコードを見てみます。既定値は

{org.jboss.remoting3.RemotingOptions.SASL_PROTOCOL=>remote,org.xnio.Options.TCP_NODELAY=>true,org.xnio.Options.REUSE_ADDRESSES=>true} 

私はOptionsMapが更新されると予想します。チャンネル作成オプションの設定を使用します。私はこれを期待して間違っていますか?

よろしく、 ジェレミー

答えて

0

TCP_NODELAYソケットオプションは、リモーティングプロトコルの正しい操作を妨害するそうとして無効にすることはできません。

レイテンシを犠牲にすることなくスループットを向上させるためにLinuxではTCP_CORKを使用していましたが、うまくいったようですが、完成したテスト済みネイティブXNIO実装が必要です瞬間。

0

EJBサブシステムのリモート/チャネル作成オプションの設定は、org.jboss.as.remoting.HttpConnectorAddを経由しません。彼らはorg.jboss.as.ejb3.remote.EJBRemoteConnectorServiceに引き渡され、リモーティングのEndpoint.registerServiceコールに引き渡されます。そのメソッドに渡されたOptionMapから読み込まれAFAICT彼らだけのオプションが

  • RemotingOptions.TRANSMIT_WINDOW_SIZE、

  • RemotingOptions.MAX_OUTBOUND_MESSAGES

  • RemotingOptions.RECEIVE_WINDOW_SIZE

  • RemotingOptionsです。 MAX_INBOUND_MESSAGES

  • RemotingO ptions.MAX_OUTBOUND_MESSAGE_SIZE
  • RemotingOptions.MAX_INBOUND_MESSAGE_SIZE。

org.jboss.remoting3.remote.RemoteReadListenerこれは、チャネルオープン要求が接続で受信された後にチャネルを設定するので、これによって行われます。

関連する問題