SqlResult Connection::MakeRequestHandshake() { HandshakeRequest req(PROTOCOL_VERSION); HandshakeResponse rsp; try { SyncMessage(req, rsp); } catch (const IgniteError& err) { AddStatusRecord(SQL_STATE_HYT01_CONNECTIOIN_TIMEOUT, err.GetText()); return SQL_RESULT_ERROR; } if (rsp.GetStatus() != RESPONSE_STATUS_SUCCESS) { LOG_MSG("Error: %s\n", rsp.GetError().c_str()); AddStatusRecord(SQL_STATE_08001_CANNOT_CONNECT, rsp.GetError()); InternalRelease(); return SQL_RESULT_ERROR; } if (!rsp.IsAccepted()) { LOG_MSG("Hanshake message has been rejected.\n"); std::stringstream constructor; constructor << "Node rejected handshake message. " << "Current node Apache Ignite version: " << rsp.CurrentVer() << ", " << "node protocol version introduced in version: " << rsp.ProtoVerSince() << ", " << "driver protocol version introduced in version: " << PROTOCOL_VERSION_SINCE << "."; AddStatusRecord(SQL_STATE_08001_CANNOT_CONNECT, constructor.str()); InternalRelease(); return SQL_RESULT_ERROR; } return SQL_RESULT_SUCCESS; }
SqlResult Connection::MakeRequestHandshake() { bool distributedJoins = false; bool enforceJoinOrder = false; int64_t protocolVersion = 0; try { distributedJoins = config.IsDistributedJoins(); enforceJoinOrder = config.IsEnforceJoinOrder(); protocolVersion = config.GetProtocolVersion().GetIntValue(); } catch (const IgniteError& err) { AddStatusRecord(SQL_STATE_01S00_INVALID_CONNECTION_STRING_ATTRIBUTE, err.GetText()); return SQL_RESULT_ERROR; } HandshakeRequest req(protocolVersion, distributedJoins, enforceJoinOrder); HandshakeResponse rsp; try { SyncMessage(req, rsp); } catch (const IgniteError& err) { AddStatusRecord(SQL_STATE_HYT01_CONNECTIOIN_TIMEOUT, err.GetText()); return SQL_RESULT_ERROR; } if (rsp.GetStatus() != RESPONSE_STATUS_SUCCESS) { LOG_MSG("Error: %s\n", rsp.GetError().c_str()); AddStatusRecord(SQL_STATE_08001_CANNOT_CONNECT, rsp.GetError()); InternalRelease(); return SQL_RESULT_ERROR; } if (!rsp.IsAccepted()) { LOG_MSG("Hanshake message has been rejected.\n"); std::stringstream constructor; constructor << "Node rejected handshake message. " << "Current node Apache Ignite version: " << rsp.CurrentVer() << ", " << "node protocol version introduced in version: " << rsp.ProtoVerSince() << ", " << "driver protocol version introduced in version: " << config.GetProtocolVersion().ToString() << "."; AddStatusRecord(SQL_STATE_08001_CANNOT_CONNECT, constructor.str()); InternalRelease(); return SQL_RESULT_ERROR; } return SQL_RESULT_SUCCESS; }