2017-10-13 3 views
0

することにより、未知の接続。問題を再現するため、次の手順を実行しました。 -ベースTibJMS javax.jms.JMSException:私はJMS接続のため<strong>ベースTibJMS</strong> jarファイルを使用していますし、それが正常な場合は正常に動作しますが、私は、JMSプロバイダへの接続が失われた後、それが戻ってきた場合には問題があるサーバー

  1. イントラネットに接続してサーバーを起動します。正常に動作します。

  2. イントラネットから切断します。サーバーの再接続が開始されます。ファイン。

  3. イントラネットに再度接続します。それは未知の例外をスローし、再び接続しません。問題。

だから、私の問題は、「javax.jms.JMSException:サーバが不明の接続」であるずっと私に教えてくれないと、あなたは、ログの最後にそれを見ることができます。

あなたは次のログからそれを見ることができます -

2017-10-13 15:40:52,333 [  http-nio-8080-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 37 ms 
2017-10-13 15:41:29,293 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Disconnected from ssl://10.10.10.10:5071, will attempt to reconnect 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2132) 
    at com.tibco.tibjms.TibjmsConnection._reconnect(TibjmsConnection.java:1912) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventReconnect(TibjmsConnection.java:387) 
    at com.tibco.tibjms.TibjmsxLinkTcp._doReconnect(TibjmsxLinkTcp.java:598) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:317) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 
2017-10-13 15:42:29,334 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Reconnecting to ssl://11.11.11.11:5071, attempt 1 out of 100 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2132) 
    at com.tibco.tibjms.TibjmsConnection._reconnect(TibjmsConnection.java:1975) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventReconnect(TibjmsConnection.java:387) 
    at com.tibco.tibjms.TibjmsxLinkTcp._doReconnect(TibjmsxLinkTcp.java:598) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:317) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 
2017-10-13 15:42:32,335 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Reconnecting to ssl://10.10.10.10:5071, attempt 1 out of 100 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2132) 
    at com.tibco.tibjms.TibjmsConnection._reconnect(TibjmsConnection.java:1975) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventReconnect(TibjmsConnection.java:387) 
    at com.tibco.tibjms.TibjmsxLinkTcp._doReconnect(TibjmsxLinkTcp.java:598) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:317) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 
2017-10-13 15:43:35,358 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Reconnecting to ssl://11.11.11.11:5071, attempt 2 out of 100 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2132) 
    at com.tibco.tibjms.TibjmsConnection._reconnect(TibjmsConnection.java:1975) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventReconnect(TibjmsConnection.java:387) 
    at com.tibco.tibjms.TibjmsxLinkTcp._doReconnect(TibjmsxLinkTcp.java:598) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:317) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 
2017-10-13 15:43:38,359 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Reconnecting to ssl://10.10.10.10:5071, attempt 2 out of 100 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2132) 
    at com.tibco.tibjms.TibjmsConnection._reconnect(TibjmsConnection.java:1975) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventReconnect(TibjmsConnection.java:387) 
    at com.tibco.tibjms.TibjmsxLinkTcp._doReconnect(TibjmsxLinkTcp.java:598) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:317) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 
2017-10-13 15:44:41,368 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Reconnecting to ssl://11.11.11.11:5071, attempt 3 out of 100 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2132) 
    at com.tibco.tibjms.TibjmsConnection._reconnect(TibjmsConnection.java:1975) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventReconnect(TibjmsConnection.java:387) 
    at com.tibco.tibjms.TibjmsxLinkTcp._doReconnect(TibjmsxLinkTcp.java:598) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:317) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 
2017-10-13 15:44:45,951 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Reconnecting to ssl://10.10.10.10:5071, attempt 3 out of 100 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2132) 
    at com.tibco.tibjms.TibjmsConnection._reconnect(TibjmsConnection.java:1975) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventReconnect(TibjmsConnection.java:387) 
    at com.tibco.tibjms.TibjmsxLinkTcp._doReconnect(TibjmsxLinkTcp.java:598) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:317) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 
2017-10-13 15:44:50,525 [k Reader (Server-3285015)] ERROR com.example.jms.PaxJmsClient - Exception received from jms 
javax.jms.JMSException: Connection unknown by server 
    at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:659) 
    at com.tibco.tibjms.TibjmsConnection._invokeOnExceptionCallback(TibjmsConnection.java:2114) 
    at com.tibco.tibjms.TibjmsConnection._onDisconnected(TibjmsConnection.java:2487) 
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventDisconnected(TibjmsConnection.java:367) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:328) 
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:259) 

私のコード -

@PostConstruct 
    public void configurePaxJmsClient() { 

     try { 
      // create Topic Connection Factory 
      TibjmsTopicConnectionFactory cf = new TibjmsTopicConnectionFactory(serverUrl); 
      cf.setSSLTrustedCertificate(sslCertificatePath); 
      cf.setSSLEnableVerifyHostName(false); 
      cf.setUserName(username); 
      cf.setUserPassword(password); 

      cf.setReconnAttemptCount(100); 
      cf.setReconnAttemptDelay(60000); 
      cf.setReconnAttemptTimeout(10000); 

      cf.setConnAttemptCount(100); 
      cf.setConnAttemptDelay(60000); 
      cf.setConnAttemptTimeout(10000); 

      Tibjms.setExceptionOnFTEvents(true); 
      Tibjms.setExceptionOnFTSwitch(true); 

      // creation the connection and install an exception handler 
      connection = cf.createTopicConnection(username, password); 
      connection.setExceptionListener(this); 

      // You might also use CLIENT_ACKNOWLEDGE here 
      session = connection.createTopicSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE); 
      Topic topic = session.createTopic(topicName); 

      // Create the subscriber and install the listener 
      TopicSubscriber ts; 
      /*if (dsName == null || dsName.length() == 0) { 
       ts = session.createSubscriber(topic); 
      } else { 
       ts = session.createDurableSubscriber(topic, dsName); 
      }*/ 

      if (dsName == null || dsName.length() == 0) { 
       ts = session.createSubscriber(topic, messageSelector, false); 
      } else { 
       ts = session.createDurableSubscriber(topic, dsName, messageSelector, false); 
      } 

      // 
      ts.setMessageListener(this); 
      connection.start(); 

     } catch (JMSException e) { 
      LOGGER.error("Failed to connect with message:" + e.getMessage(), e); 
      releaseResources(); 
     } 
    } 

    @Override 
    public void onException(JMSException e) { 
     LOGGER.error("Exception received from jms", e); 
    } 

君たちはここに問題があるものを私に教えてくれたり、正しい方向に私を指すことができますか?

また、Spring Beanの@PostConstructにjms接続の初期化を設定しても問題ありませんか?

+0

まだこの問題がありますか? – Losusovic

+0

はい..それにはいくつかの解決策がありますか、同じ問題に直面していますか? –

答えて

3

EMSが「再接続に失敗しました:接続が不明です:id = xxxxx」と報告する理由を教えてください。 このメッセージは、クライアントが再接続を試みたときに、EMSサーバにクライアント接続情報がないか、またはもはやクライアント接続情報がないことを示します。

2つの理由があります。

  1. パラメータ「ft_reconnect_timeoutは」十分に高くありません。クライアントがサーバーに再接続する前に、サーバーによって接続が既にパージされています。 これは、tibemsd.confの "ft_reconnect_timeout"パラメータに高い値を設定することで解決できます。デフォルト値は60秒です。 (秒)の量は、バックアップサーバが(それは、フェールオーバー状況で、プライマリサーバの役割を引き受けた後) を再接続するクライアントのために待機する時間を、このパラメータは秒単位で指定することで、「ft_reconnect_timeout」

  2. パラメータサーバーは保留中の接続を維持します。 この期間内にクライアントが再接続しない場合、サーバーは共有状態ファイルからその状態を削除します。 クライアントが「ft_reconnect_timeout」で設定した時間後に再接続しようとすると、サーバーにクライアント接続情報がなく、「再接続に失敗しました:接続が不明です」というメッセージが表示されます。

だから、あなたがお使いの環境に応じた値を設定することをお勧めしてsame.Also Ft_reconnect_timeout値が高い場合は、接続および接続関連のオブジェクトの多くは、長い時間のためにメモリに保持されているをテストしますメモリに問題がある可能性があります。また、接続がclientIDを使用している場合は、「clientID already exists」という問題が発生する可能性があります。

関連する問題