Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    SQLConnectionManager.error - Could not create a validated object (MS SQLServer)

    Hello support team,

    I have updated my web app from SmartClient v12.0p_2018-11-15/PowerEdition to v12.1p_2023-07-22/PowerEdition.

    Basically the .jar files have been replaced via the maven dependencies mechanism and the front end files manually.

    The server.properties file remains unchanged.

    After the update, the web app reports an error with the first fetch of a DataSource as follows:

    2023-07-24 17:45:08,553|[main]|I|[]|ISCInit.info|Isomorphic SmartClient/SmartGWT Framework (v12.1p_2023-07-22/PowerEdition Deployment 2023-07-22) - Initialization Complete

    499: 2023-07-24 17:45:56,273|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|I|[vh8kdn74nh50tv2vhki9vfdy]|RequestContext.info|URL: '/app/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0': Moz (Gecko) with Accept-Encoding header
    508: 2023-07-24 17:45:56,433|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|W|[vh8kdn74nh50tv2vhki9vfdy]|Validation.warn|attribute 'autoGenerated' is not declared in Component Schema '{DataSourceField.ds.xml}' and strict mode is enabled. See 'Strict Mode' overview in the documentation for details.DataSource.fields.DataSourceField /DataSource[@ID=KtDS_SysTextTranslations]/fields/0/field[@name=Id]
    509: 2023-07-24 17:45:56,434|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|W|[vh8kdn74nh50tv2vhki9vfdy]|DefaultValidators.warn|Field 'name' not found in data source 'AdvancedCriteria'
    520: 2023-07-24 17:45:56,547|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDriver.debug|SYSDB: Initializing SQL config using interface.type: driverManager with driver: net.sourceforge.jtds.jdbc.Driver
    521: 2023-07-24 17:45:56,547|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDriver.debug|net.sourceforge.jtds.jdbc.Driver lookup successful
    522: 2023-07-24 17:45:56,548|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDriver.debug|SYSDB: Fetching connection via jdbc url jdbc:jtds:sqlserver://SERVER:1433/DB-NAME;instance=SQLSERVER01;user=sa;password=FOO
    523: 2023-07-24 17:45:56,548|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDriver.debug|SYSDB: Passing JDBC URL only to getConnection
    533: 2023-07-24 17:45:56,623|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDriver.debug|SYSDB: Database metadata: {
    databaseProductString:"Microsoft SQL Server 15.00.4316",
    driverName:"jTDS Type 4 JDBC Driver for MS SQL Server and Sybase",
    driverMajorVersion:1,
    driverMinorVersion:3,
    databaseProductName:"Microsoft SQL Server",
    databaseProductVersion:"15.00.4316",
    databaseMinorVersion:0,
    databaseMajorVersion:15,
    JDBCMinorVersion:0,
    driverVersion:"1.3.1",
    JDBCMajorVersion:3
    }
    546: 2023-07-24 17:45:56,626|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDataSource.debug|DataSource 1206 acquired SQLDriver instance 533963468 during initialization
    558: 2023-07-24 17:45:56,956|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDataSource.debug|1206: Executing SQL query on 'SYSDB': SELECT KOHSysTexttranslations.Id, KOHSysTexttranslations.TextLocale, KOHSysTexttranslations.LocText, KOHSysTexttranslations.CreatedBy, KOHSysTexttranslations.CreatedDate, KOHSysTexttranslations.ModifiedBy, KOHSysTexttranslations.ModifiedDate FROM dbo.KOHSysTexttranslations WHERE (LOWER(KOHSysTexttranslations.TextLocale)='de_de')
    559: 2023-07-24 17:45:56,998|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|I|[vh8kdn74nh50tv2vhki9vfdy]|PoolManager.info|SmartClient pooling started for 'SYSDB' objects
    562: 2023-07-24 17:45:57,063|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|PoolableSQLConnectionFactory.debug|makeObject() created a pooled Connection '679642049'
    563: 2023-07-24 17:45:57,070|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|E|[vh8kdn74nh50tv2vhki9vfdy]|SQLConnectionManager.error|Caught exception while trying to obtain connection to server: SYSDB
    java.util.NoSuchElementException: Could not create a validated object, cause: null
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1191)
    at com.isomorphic.pool.PoolManager.borrowObject(PoolManager.java:94)
    at com.isomorphic.sql.SQLConnectionManager.getConnection(SQLConnectionManager.java:177)
    at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:1068)
    at com.isomorphic.sql.SQLDriver.executeQuery(SQLDriver.java:1535)
    at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:593)
    at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:587)
    at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1799)
    at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:449)
    at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:394)
    at com.isomorphic.datasource.DataSource.execute(DataSource.java:2521)
    at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:658)
    at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:555)
    at com.isomorphic.application.AppBase.execute(AppBase.java:498)
    at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:3003)
    at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:226)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:183)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:148)
    at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:119)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:79)

    636: 2023-07-24 17:45:57,071|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|D|[vh8kdn74nh50tv2vhki9vfdy]|SQLDataSource.debug|About to clear SQLDriver state for DS instance 1206
    637: 2023-07-24 17:45:57,071|[qtp1885996206-26 - /app/isomorphic/IDACall?isc_rpc=1&isc_v=v12.1p_2023-07-22&isc_xhr=1]|W|[vh8kdn74nh50tv2vhki9vfdy]|RequestContext.warn|dsRequest.execute() failed:
    java.sql.SQLException: java.util.NoSuchElementException: Could not create a validated object, cause: null
    at com.isomorphic.sql.SQLConnectionManager.getConnection(SQLConnectionManager.java:195)
    at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:1068)
    at com.isomorphic.sql.SQLDriver.executeQuery(SQLDriver.java:1535)
    at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:593)
    at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:587)
    at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1799)
    at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:449)
    at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:394)
    at com.isomorphic.datasource.DataSource.execute(DataSource.java:2521)
    at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:658)
    at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:555)
    at com.isomorphic.application.AppBase.execute(AppBase.java:498)
    at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:3003)
    at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:226)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:183)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:148)
    at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:119)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:79)


    It seems, the connection can be established, as the DB metadata can be read (line number 533).
    But getting a connection from the pool failed.

    server.properties:
    sql.SYSDB.database.type: sqlserver
    sql.SYSDB.interface.type: driverManager
    sql.SYSDB.driver: net.sourceforge.jtds.jdbc.Driver
    sql.SYSDB.driver.url: jdbc:jtds:sqlserver://SERVER:1433/DB-NAME;instance=SQLSERVER01;user=sa;password=FOO


    Any idea?

    Thanks in advance.
    Best regards,
    Dan


    #2
    [never mind, we'll take a look]

    Comment


      #3
      This looks like you may have old versions of .jars still around - possibly your dependencies (such as commons-pool) are stale, or there are duplicates, or possibly there are duplicates of the SmartClient server .jars, or both.

      Note that SmartClient comes with Maven support:

      https://smartclient.com/reifyOnSite/.....mavenSupport

      It sounds like you're using your own homemade Maven stuff, but there is official Maven support that is known to get the dependencies correct.

      Comment


        #4
        Another possibility: you may have somehow forced the pool size to 1, and two connections are needed in this instance.

        Comment


          #5
          The line reported as being in error in that stack trace - GenericObjectPool line 1191 - is not an executable line according to the source of Apache commons-pool version 1.6, which is the version provided with SmartClient 12.1. So it looks like you have at least one .jar issue

          Comment

          Working...
          X