2016-12-13 6 views
0

私は銀行と通信するために私のアプリケーションの1つでバネ統合を使用しています。重い負荷では、 "org.springframework.messaging.MessagingException:SSL Handshaking too long"というエラーが発生しています。銀行はタイムアウトを90秒に設定するよう頼んでいます。 TcpNioSSLConnectionクラスのコードを調べているうちに、30秒がハードコードされていることがわかりました。スプリング統合でSSLハンドシェイクタイムアウトを定義するオプションがありません

private HandshakeStatus waitForHandshakeData(SSLEngineResult result, 
      HandshakeStatus status) thr`enter code here`ows IOException { 
      try { 
       if (logger.isTraceEnabled()) { 
        logger.trace("Writer waiting for handshake"); 
       } 
      if (!TcpNioSSLConnection.this.semaphore.tryAcquire(30, TimeUnit.SECONDS)) { 
       throw new MessagingException("SSL Handshaking taking too long"); 
      } 
      if (logger.isTraceEnabled()) { 
       logger.trace("Writer resuming handshake"); 
      } 
      status = runTasksIfNeeded(result); 
     } 
     catch (InterruptedException e) { 
      Thread.currentThread().interrupt(); 
      throw new MessagingException("Interrupted during SSL Handshaking"); 
     } 
     return status; 
    } 

SSLハンドシェイクタイムアウト

以下

を高めるためにそこにどのような方法は、私の春の統合接続ファクトリの設定がありません現在あり

<int-ip:tcp-connection-factory id="client" 
      type="client" port="${cbs.third.party.port}" host="${cbs.third.party.host}" 
      single-use="true" using-nio="true" deserializer="javaDeserializer" 
      serializer="javaSerializer" ssl-context-support="sslContextSupport" task-executor="myTaskExecutor"/> 

おかげで、 のRohit

答えて

0

であるなら、私を提案して下さいそのタイムアウトを設定する方法。私はJIRA Issueを開いた。

use-niofalseに設定してみてください。長時間ソケットを開いている場合を除き、一般的には必要ありません。

+0

ありがとうございました。返信いただきありがとうございます。私は同じをチェックします –

+0

ありがとうゲーリー、 –

関連する問題