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
Ensure that the user has the VIEW CHANGE TRACKING permission on the table.
To check the permissions on the table, you can run the following query:
1> SELECT * FROM fn_my_permissions('<table-name>', 'OBJECT') 2> goYou should see the VIEW CHANGE TRACKING permission under permission_name
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
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)"}]
Was this topic helpful?
Document Information
Modified date:
15 March 2025
UID
ibm17186202