HSQLDB客户端版本不兼容

时间:2018-01-29 01:57:28

标签: maven jmeter hsqldb

我正在尝试使用jmeter对我的webAPI运行http请求测试,但是我收到错误:

[Server@4517d9a3]: Rejected attempt from client using hsql HTTP protocol
org.hsqldb.HsqlException: HSQLDB server version is '2.4.0'  client version 
'-1195.-72.-58.-56' is not compatible.
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.server.ServerConnection.init(Unknown Source)
at org.hsqldb.server.ServerConnection.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

JDBC连接测试工作正常。

1 个答案:

答案 0 :(得分:0)

为什么你需要这两种协议还不是很清楚,你需要坚持使用正在测试的应用程序使用的协议,并且切换到HTTP的唯一用例我能想到的是所有其他端口分开的时候来自HTTP / HTTPS的防火墙被阻止(除非您正在测试HSQLDB本身,在这种情况下,您应该联系您的开发人员)

一些问题排查提示:

  1. 确保在JMeter Classpath中使用相同的JDBC驱动程序版本 - 2.4.0,并且没有任何其他(即较旧的客户端库)
  2. 确保您的JDBC HTTP URL is correct
  3. 如果您使用HTTPS协议,则可能是HSQLDB和JMeter are using different keystores方面的JMeter配置错误。
  4. 考虑到ServerConnection类,HSQLDB本身也可能存在问题:

    switch (streamProtocol) {
    
        case HSQL_STREAM_PROTOCOL :
            if (firstInt
                    != ClientConnection
                        .NETWORK_COMPATIBILITY_VERSION_INT) {
                if (firstInt == -1900000) {
                    firstInt = -2000000;
                }
    
                String verString =
                    ClientConnection.toNetCompVersionString(firstInt);
    
                throw Error.error(
                    null, ErrorCode.SERVER_VERSIONS_INCOMPATIBLE, 0,
                    new String[] {
                    HsqlDatabaseProperties.THIS_VERSION, verString
                });
            }
    
            int msgType = dataInput.readByte();
    
            receiveResult(msgType);
            break;
    
        case ODBC_STREAM_PROTOCOL :
            odbcConnect(firstInt);
            break;
    

    ClientConnection类中,字段如下所示:

    public static final String NETWORK_COMPATIBILITY_VERSION     = "2.3.4.0";
    public static final int    NETWORK_COMPATIBILITY_VERSION_INT = -2030400;