IBM Support

JDBC_75 - Jdbc Runner Failed with SQL Server Change Tracking Origin

Troubleshooting


Problem

This error can be caused by not having the correct VIEW CHANGE TRACKING permission on the table.

Symptom

Pipeline with SQL Server Change Tracking Origin is not able to run with JDBC_75 error:

com.streamsets.pipeline.api.StageException: JDBC_75 - Jdbc Runner Failed. Reason java.util.concurrent.ExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NullPointerException
Caused by: java.lang.NullPointerException
	at com.streamsets.pipeline.lib.jdbc.multithread.TableReadContext.lambda$new$1(TableReadContext.java:81) ~[?:?]
	at com.streamsets.datacollector.runner.StageContext.idleCall(StageContext.java:300) ~[streamsets-datacollector-container-5.4.0.jar:?]
	at com.streamsets.datacollector.runner.StageContext.remoteIdleCall(StageContext.java:317) ~[streamsets-datacollector-container-5.4.0.jar:?]
	at com.streamsets.pipeline.lib.jdbc.multithread.TableReadContext.<init>(TableReadContext.java:77) ~[?:?]
	at com.streamsets.pipeline.lib.jdbc.multithread.TableReadContext.<init>(TableReadContext.java:54) ~[?:?]
	at com.streamsets.pipeline.lib.jdbc.multithread.cache.SQLServerCTContextLoader.load(SQLServerCTContextLoader.java:80) ~[?:?]
	at com.streamsets.pipeline.lib.jdbc.multithread.cache.SQLServerCTContextLoader.load(SQLServerCTContextLoader.java:23) ~[?:?]
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533) ~[guava-31.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282) ~[guava-31.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159) ~[guava-31.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049) ~[guava-31.1-jre.jar:?]
	at com.google.common.cache.LocalCache.get(LocalCache.java:3966) ~[guava-31.1-jre.jar:?]
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989) ~[guava-31.1-jre.jar:?]
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950) ~[guava-31.1-jre.jar:?]
	at com.streamsets.pipeline.lib.jdbc.multithread.JdbcBaseRunnable.getOrLoadTableReadContext(JdbcBaseRunnable.java:557) ~[?:?]
	at com.streamsets.pipeline.lib.jdbc.multithread.JdbcBaseRunnable.generateBatchAndCommitOffset(JdbcBaseRunnable.java:256) ~[?:?]
	at com.streamsets.pipeline.lib.jdbc.multithread.JdbcBaseRunnable.run(JdbcBaseRunnable.java:169) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]

Resolving The Problem

  1. Ensure that the user has the VIEW CHANGE TRACKING permission on the table.

  2. To check the permissions on the table, you can run the following query:

    1> SELECT * FROM fn_my_permissions('<table-name>', 'OBJECT')
    2> go
  3. You should see the VIEW CHANGE TRACKING permission under permission_name

  4. If you are missing this permission, you can have the permission granted by your database administrator.

    1> GRANT VIEW CHANGE TRACKING ON dbo.<table>name TO <username>;
    2> go
  5. The error is more explicit in later SDC versions.

Document Location

Worldwide

[{"Line of Business":{"code":"LOB76","label":"Data Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSM7CU","label":"IBM StreamSets Data Collector"},"ARM Category":[{"code":"","label":""}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"}]

Document Information

Modified date:
15 March 2025

UID

ibm17186202