How to resolve "Function sequence error" when introspecting Canary data with Spotfire Data Virtualization JDBC-ODBC Bridge adapter?

book

Article ID: KB0138654

calendar_today

Updated On:

Products Versions
TIBCO Data Virtualization All supported versions

Description

In Spotfire Data Virtualization (SDV), when using the JDBC-ODBC Bridge adapter to connect to Canary DSN, the introspection fails with error "[Microsoft] [ODBC Driver Manager] Function sequence error" - 

image.png

Complete error message stack trace from cs_server.log file 

ERROR [GetIntrospectableResourceIdsTask Get Introspectable Resource Identifiers] 2026-08-17 11:26:30.348 -0400 TaskManager - Task failed: GetIntrospectableResourceIdsTask Get Introspectable Resource Identifiers
com.compositesw.common.CompositeRuntimeException: [Microsoft][ODBC Driver Manager] Function sequence error
	at com.compositesw.server.task.TaskWithResults.run(TaskWithResults.java:90) ~[csserver.jar:?]
	at com.compositesw.server.task.TaskManager$TaskRunner.run(TaskManager.java:149) ~[csserver.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
	at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: com.compositesw.common.CompositeRuntimeException: [Microsoft][ODBC Driver Manager] Function sequence error
	at com.compositesw.server.api.core.DataSourceApi.internalGetIntrospectableResourceIds(DataSourceApi.java:1341) ~[csserver.jar:?]
	at com.compositesw.cdms.datasource.introspect.task.GetIntrospectableResourceIdsTask.doTaskWithResultsRun(GetIntrospectableResourceIdsTask.java:61) ~[csserver.jar:?]
	at com.compositesw.server.task.TaskWithResults.run(TaskWithResults.java:80) ~[csserver.jar:?]
	... 4 more
Caused by: com.compositesw.common.CompositeRuntimeException: [Microsoft][ODBC Driver Manager] Function sequence error
	at com.compositesw.cdms.datasource.introspect.AbstractIntrospector2.getIntrospectableResourceIds(AbstractIntrospector2.java:290) ~[csserver.jar:?]
	at com.compositesw.cdms.datasource.introspect.IntrospectionHandler.getIntrospectableResourceIds(IntrospectionHandler.java:320) ~[csserver.jar:?]
	at com.compositesw.server.api.core.DataSourceApi.internalGetIntrospectableResourceIds(DataSourceApi.java:1339) ~[csserver.jar:?]
	at com.compositesw.cdms.datasource.introspect.task.GetIntrospectableResourceIdsTask.doTaskWithResultsRun(GetIntrospectableResourceIdsTask.java:61) ~[csserver.jar:?]
	at com.compositesw.server.task.TaskWithResults.run(TaskWithResults.java:80) ~[csserver.jar:?]
	... 4 more
Caused by: com.compositesw.common.CompositeRuntimeException: [Microsoft][ODBC Driver Manager] Function sequence error
	at com.compositesw.cdms.datasource.introspect.AbstractIntrospector2$1.run(AbstractIntrospector2.java:256) ~[csserver.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
	... 3 more
Caused by: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Function sequence error
	at cdata.jdbc.jdbcodbc.OdbcSql.checkSQLError(Unknown Source) ~[?:?]
	at cdata.jdbc.jdbcodbc.OdbcSql.checkSQLError(Unknown Source) ~[?:?]
	at XcdataXjdbcodbcX260X9672.gnc.checkError(Unknown Source) ~[?:?]
	at XcdataXjdbcodbcX260X9672.hnc.a(Unknown Source) ~[?:?]
	at XcdataXjdbcodbcX260X9672.gnc.a(Unknown Source) ~[?:?]
	at XcdataXjdbcodbcX260X9672.cnc.getProcedures(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
	at XcdataXjdbcodbcX260X9672.rqc.invoke(Unknown Source) ~[?:?]
	at jdk.proxy5.$Proxy182.getProcedures(Unknown Source) ~[?:?]
	at com.cdata.cis.jdbcodbc.JDBCODBCMetadata.getProcedures(Unknown Source) ~[?:?]
	at com.compositesw.cdms.datasource.extensions.relational.ExtensionJdbcIntrospector2.getIntrospectableResourceChildIds(ExtensionJdbcIntrospector2.java:873) ~[csmodule_datasource.jar:?]
	at com.compositesw.cdms.datasource.introspect.AbstractIntrospector2$1.run(AbstractIntrospector2.java:250) ~[csserver.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
	... 3 more

Environment

All Supported Operating Systems

Resolution

During the introspection, SDV automatically tries to discover everything it can about a relational database—including Tables, Views, and Stored Procedures. When the SDV requests procedure metadata (getProcedures()), the Canary ODBC driver fails to handle the request. Because Canary is a time-series historian, it does not support or utilize stored procedures.

To resolve this error -

(1) Open the Canary data source in Studio > navigate to the 'Overrides' tab > in the find dialog box, search for 'Data source supports procedures' > uncheck the box. Save the changes.

Screenshot of the configuration for reference - 

image.png

(2) Now re-try the introspection and it will show the Canary resources, 

Screenshot for reference - 

image.png

Note - this resolution will help any other database connectivity that does not support procedures. 

Issue/Introduction

This article provides details on how to resolve "Function sequence error" when connecting to Canary using Spotfire Data Virtualization JDBC-ODBC Bridge adapter.