Minors.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/aa1f7a6e Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/aa1f7a6e Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/aa1f7a6e Branch: refs/heads/ignite-3716 Commit: aa1f7a6e8e634e8646440cbf5b8e1a2510542cce Parents: 2023557 Author: vozerov-gridgain <voze...@gridgain.com> Authored: Wed Aug 24 11:48:33 2016 +0300 Committer: vozerov-gridgain <voze...@gridgain.com> Committed: Wed Aug 24 11:48:33 2016 +0300 ---------------------------------------------------------------------- .../processors/odbc/OdbcNioListener.java | 2 +- .../processors/odbc/OdbcRequestHandler.java | 38 +++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/aa1f7a6e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java index f720096..e7baaff 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java @@ -121,7 +121,7 @@ public class OdbcNioListener extends GridNioServerListenerAdapter<byte[]> { OdbcRequestHandler handler = connData.getHandler(); - OdbcResponse resp = handler.handle(req); + OdbcResponse resp = handler.handle(reqId, req); if (log.isDebugEnabled()) { long dur = (System.nanoTime() - startTime) / 1000; http://git-wip-us.apache.org/repos/asf/ignite/blob/aa1f7a6e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java index b37beda..61b91d7 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java @@ -18,6 +18,7 @@ package org.apache.ignite.internal.processors.odbc; import org.apache.ignite.IgniteCache; +import org.apache.ignite.IgniteLogger; import org.apache.ignite.cache.query.QueryCursor; import org.apache.ignite.cache.query.SqlFieldsQuery; import org.apache.ignite.internal.GridKernalContext; @@ -46,6 +47,9 @@ public class OdbcRequestHandler { /** Kernel context. */ private final GridKernalContext ctx; + /** Logger. */ + private final IgniteLogger log; + /** Busy lock. */ private final GridSpinBusyLock busyLock; @@ -72,15 +76,18 @@ public class OdbcRequestHandler { this.ctx = ctx; this.busyLock = busyLock; this.maxCursors = maxCursors; + + log = ctx.log(OdbcRequestHandler.class); } /** * Handle request. * + * @param reqId Request ID. * @param req Request. * @return Response. */ - public OdbcResponse handle(OdbcRequest req) { + public OdbcResponse handle(long reqId, OdbcRequest req) { assert req != null; if (!busyLock.enterBusy()) @@ -90,22 +97,22 @@ public class OdbcRequestHandler { try { switch (req.command()) { case HANDSHAKE: - return performHandshake((OdbcHandshakeRequest) req); + return performHandshake(reqId, (OdbcHandshakeRequest)req); case EXECUTE_SQL_QUERY: - return executeQuery((OdbcQueryExecuteRequest) req); + return executeQuery(reqId, (OdbcQueryExecuteRequest)req); case FETCH_SQL_QUERY: - return fetchQuery((OdbcQueryFetchRequest) req); + return fetchQuery((OdbcQueryFetchRequest)req); case CLOSE_SQL_QUERY: - return closeQuery((OdbcQueryCloseRequest) req); + return closeQuery((OdbcQueryCloseRequest)req); case GET_COLUMNS_META: - return getColumnsMeta((OdbcQueryGetColumnsMetaRequest) req); + return getColumnsMeta((OdbcQueryGetColumnsMetaRequest)req); case GET_TABLES_META: - return getTablesMeta((OdbcQueryGetTablesMetaRequest) req); + return getTablesMeta((OdbcQueryGetTablesMetaRequest)req); } return new OdbcResponse(OdbcResponse.STATUS_FAILED, "Unsupported ODBC request: " + req); @@ -118,10 +125,11 @@ public class OdbcRequestHandler { /** * {@link OdbcHandshakeRequest} command handler. * + * @param reqId Request ID. * @param req Handshake request. * @return Response. */ - private OdbcResponse performHandshake(OdbcHandshakeRequest req) { + private OdbcResponse performHandshake(long reqId, OdbcHandshakeRequest req) { OdbcProtocolVersion version = req.version(); if (version.isUnknown()) { @@ -129,6 +137,10 @@ public class OdbcRequestHandler { String verStr = Byte.toString(ver.major()) + '.' + ver.minor() + '.' + ver.maintenance(); + if (log.isDebugEnabled()) + log.debug("ODBC handshake failed due to unknown client protocol version [reqId=" + reqId + + ", req=" + req + ']'); + OdbcHandshakeResult res = new OdbcHandshakeResult(false, OdbcProtocolVersion.current().since(), verStr); return new OdbcResponse(res); @@ -141,16 +153,20 @@ public class OdbcRequestHandler { enforceJoinOrder = req.enforceJoinOrder(); } + if (log.isDebugEnabled()) + log.debug("ODBC handshake successful [reqId=" + reqId + ", req=" + req + ']'); + return new OdbcResponse(res); } /** * {@link OdbcQueryExecuteRequest} command handler. * + * @param reqId Request ID. * @param req Execute query request. * @return Response. */ - private OdbcResponse executeQuery(OdbcQueryExecuteRequest req) { + private OdbcResponse executeQuery(long reqId, OdbcQueryExecuteRequest req) { int cursorCnt = qryCursors.size(); if (maxCursors > 0 && cursorCnt >= maxCursors) @@ -163,6 +179,10 @@ public class OdbcRequestHandler { try { String sql = OdbcEscapeUtils.parse(req.sqlQuery()); + if (log.isDebugEnabled()) + log.debug("ODBC query parsed [reqId=" + reqId + ", original=" + req.sqlQuery() + + ", parsed=" + sql + ']'); + SqlFieldsQuery qry = new SqlFieldsQuery(sql); qry.setArgs(req.arguments());