1

問題なくリモート EJB インスタンスへの参照を取得していますが、そのメソッドの 1 つを呼び出すと、クライアント側から「java.net.SocketTimeoutException: Read timed out」がスローされることがあります。サーバー側は問題ないようです

呼び出しごとに EJB クライアントのタイムアウトを設定する方法はありますか?

かなり古い JBoss バージョン (4.2.1 GA) を使用しています

よろしく

4

1 に答える 1

1
  1. InvokerLocaterConnector MBean の属性を設定できます。

    <attribute name="InvokerLocator">socket://{jboss.bind.address}:3873/?socketTimeout=60000</attribute>

  2. Configuration 属性の下の config 要素に、より詳細な情報を提供できます。デフォルトでは 1 分です。

    <attribute name="socketTimeout">60000</attribute>

  3. JNDI プロパティー・ファイルでタイムアウト・パラメーターを提供します。

    jnp.timeout :ミリ秒単位の接続タイムアウト。デフォルト値は 0 です。これは、VM TCP/IP レイヤーがタイムアウトするまで接続がブロックされることを意味します。

    jnp.sotimeout :接続されたソケットの読み取りタイムアウト (ミリ秒)。デフォルト値は 0 で、読み取りがブロックされることを意味します。これは、新しく接続されたソケットの Socket.setSoTimeout に渡される値です。

    個々の呼び出しのタイムアウトを手動で構成するには、適切なプロパティ値で初期コンテキストを作成する必要があります。

于 2013-04-09T04:59:17.537 に答える