"An open connection has not been established" - When an error does occur? - Forum - Technology Partner - Progress Community

"An open connection has not been established" - When an error does occur?

 Forum

"An open connection has not been established" - When an error does occur?

  • Hi.
    We have one problem in samsung in korea.
    But we can't solved.
    Please help us.
    I would like to know
    The following error appears in any situation.
    (Marked in red section)
    =====================================================================

    13:08:17  ERROR: Cannot recreate ConnectionFactory.
    com.datec.mq.sonic.exception.SonicMQAdapterException: com.datec.mq.sonic.exception.SonicMQAdapterException: Error during connection setup.
            at com.datec.mq.sonic.session.SenderConnectionObject.reinitializeConnection(SenderConnectionObject.java:183)
            at com.datec.mq.sonic.session.SenderPoolManager$SenderConnectionChecker.run(SenderPoolManager.java:139)
    Caused by: com.datec.mq.sonic.exception.SonicMQAdapterException: Error during connection setup.
            at com.datec.mq.sonic.session.SenderSessionObject.initializeSession(SenderSessionObject.java:69)
            at com.datec.mq.sonic.session.SenderConnectionObject.reinitializeConnection(SenderConnectionObject.java:177)
            ... 1 more
    Caused by: javax.jms.JMSException: An open connection has not been established
            at progress.message.jimpl.JMSExceptionUtil.createJMSException(Unknown Source)
            at progress.message.jimpl.MessageProducer.n_(Unknown Source)
            at progress.message.jimpl.MessageProducer.<init>(Unknown Source)
            at progress.message.jimpl.QueueSender.<init>(Unknown Source)
            at progress.message.jimpl.Session.createProducer(Unknown Source)
            at com.datec.mq.sonic.session.SenderSessionObject.initializeSession(SenderSessionObject.java:50)

    =====================================================================
    When the error occured, the status of network was normal.
    When the error occured, the status of MQ Server was normal!!!

    When the error occured, all of the other Send Thread was normal!!!
    The following sources(SenderSessionObject.java) are part of the error occurs.
    =====================================================================
    public synchronized SenderSessionObject initializeSession() throws SonicMQAdapterException {
      try {
       if ( _connect != null ) {
        _sendSession = _connect.createSession( false, Integer.parseInt( props.getProperty( "datec.mq.sonic.service." + _serviceName + ".ACKNOWLEDGE_MODE" ) ) );
        // Send 세션에 setFlowControlDisabled( true ) 설정
        ( ( progress.message.jclient.Session ) _sendSession ).setFlowControlDisabled( true );
        if ( _destinationName != null ) {
         try {
          if ( _serviceType.equals( "TOPIC" ) ) {
           Topic sendTopic = _sendSession.createTopic( _destinationName );
           _sender = _sendSession.createProducer( sendTopic );
          } else {
           Queue sendQueue = _sendSession.createQueue( _destinationName );
           _sender = _sendSession.createProducer( sendQueue );
          }
         } catch ( InvalidDestinationException e ) {
          throw new SonicMQAdapterException( _serviceType + "_NAME, '" + _destinationName + "' is not correct." );
         }
         log.debug( "Create Session : " + _connect.getBrokerURL() + ", SendSession : " + _sendSession + ", QueueName : " + _destinationName );
        }
       }
      } catch ( JMSException jmse ) {
       boolean connectionDropped = false;
       // If connection was dropped, try to reconnect.
       // Otherwise, print the stack trace of the exception and exit.
       int dropCode = ErrorCodes.ERR_CONNECTION_DROPPED;
       if ( ErrorCodes.testException( jmse, dropCode ) ) {
        connectionDropped = true;
        _connect = null;
       } else if ( connectionDropped ) { // Check whether the onException listener has already detected dropped connection.
        _connect = null;
       } else {
        throw new SonicMQAdapterException( "Error during connection setup.", jmse );
       }
      }
      return this;
    }
    =====================================================================
    I would appreciate your kind consideration, 
    and hope to receive your favorable reply at your earliest convenience.
    Thanks.

    However, there was a problem in a particular Send Thread.
  • Hello Sung,

    The error message means that although connection had been established  it is impossible to push data though it.

    In my experience I had 3 things that caused this problem:

    1. Network instability.

    2. Virus protection software that blocked thraffic for specific port.

    3. Attempt to send large message about and over 10 Megabytes.


    Kind regards, Viatcheslav Turkin.