浏览代码

Merge pull request #10485 from JimMoen/fix-mssql-bridge-default

fix: use default health check timeout for sqlserver
JianBo He 2 年之前
父节点
当前提交
2b0106e047

+ 3 - 3
lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_sqlserver.erl

@@ -22,11 +22,11 @@
 ]).
 
 -define(DEFAULT_SQL, <<
-    "insert into t_mqtt_msg(msgid, topic, qos, payload)"
-    "values (${id}, ${topic}, ${qos}, ${payload})"
+    "insert into t_mqtt_msg(msgid, topic, qos, payload) "
+    "values ( ${id}, ${topic}, ${qos}, ${payload} )"
 >>).
 
--define(DEFAULT_DRIVER, <<"ms-sqlserver-18">>).
+-define(DEFAULT_DRIVER, <<"ms-sql">>).
 
 conn_bridge_examples(Method) ->
     [

+ 15 - 7
lib-ee/emqx_ee_connector/src/emqx_ee_connector_sqlserver.erl

@@ -43,7 +43,7 @@
 -export([connect/1]).
 
 %% Internal exports used to execute code with ecpool worker
--export([do_get_status/2, worker_do_insert/3, do_async_reply/2]).
+-export([do_get_status/1, worker_do_insert/3, do_async_reply/2]).
 
 -import(emqx_plugin_libs_rule, [str/1]).
 -import(hoconsc, [mk/2, enum/1, ref/2]).
@@ -306,10 +306,9 @@ on_batch_query_async(InstanceId, Requests, ReplyFunAndArgs, State) ->
     ),
     do_query(InstanceId, Requests, ?ASYNC_QUERY_MODE(ReplyFunAndArgs), State).
 
-on_get_status(_InstanceId, #{poolname := Pool, resource_opts := ResourceOpts} = _State) ->
-    RequestTimeout = ?REQUEST_TIMEOUT(ResourceOpts),
+on_get_status(_InstanceId, #{poolname := Pool} = _State) ->
     Health = emqx_plugin_libs_pool:health_check_ecpool_workers(
-        Pool, {?MODULE, do_get_status, [RequestTimeout]}, RequestTimeout
+        Pool, {?MODULE, do_get_status, []}
     ),
     status_result(Health).
 
@@ -328,9 +327,9 @@ connect(Options) ->
     Opts = proplists:get_value(options, Options, []),
     odbc:connect(ConnectStr, Opts).
 
--spec do_get_status(connection_reference(), time_out()) -> Result :: boolean().
-do_get_status(Conn, RequestTimeout) ->
-    case execute(Conn, <<"SELECT 1">>, RequestTimeout) of
+-spec do_get_status(connection_reference()) -> Result :: boolean().
+do_get_status(Conn) ->
+    case execute(Conn, <<"SELECT 1">>) of
         {selected, [[]], [{1}]} -> true;
         _ -> false
     end.
@@ -444,6 +443,15 @@ worker_do_insert(
             {error, {unrecoverable_error, {invalid_request, Reason}}}
     end.
 
+-spec execute(pid(), sql()) ->
+    updated_tuple()
+    | selected_tuple()
+    | [updated_tuple()]
+    | [selected_tuple()]
+    | {error, common_reason()}.
+execute(Conn, SQL) ->
+    odbc:sql_query(Conn, str(SQL)).
+
 -spec execute(pid(), sql(), time_out()) ->
     updated_tuple()
     | selected_tuple()

+ 2 - 2
scripts/ct/run.sh

@@ -193,9 +193,9 @@ for dep in ${CT_DEPS}; do
 done
 
 if [ "$ODBC_REQUEST" = 'yes' ]; then
-    INSTALL_ODBC="./scripts/install-odbc-driver.sh"
+    INSTALL_ODBC="./scripts/install-msodbc-driver.sh"
 else
-    INSTALL_ODBC="echo 'Driver msodbcsql driver not requested'"
+    INSTALL_ODBC="echo 'msodbc driver not requested'"
 fi
 
 F_OPTIONS=""

scripts/install-odbc-driver.sh → scripts/install-msodbc-driver.sh