All Apps and Add-ons

Splunk DB Connect app cannot establish connection to Teradata

jssun
Explorer

Having trouble establishing connection to Teradata with Splunk DBX v 3.3.0.
Using
JDK v1.8.0_131
Teradata JDBC driver v16.20

terajdbc4.jar saved in /Applications/Splunk/etc/apps/splunk_app_db_connect/drivers
tdgssconfig.jar saved in /Applications/Splunk/etc/apps/splunk_app_db_connect/drivers/terajdbc4-libs

/Applications/Splunk/etc/apps/splunk_app_db_connect/local/db_connections.conf has below settings populated from identities and connections setup.

[Splunk_TD]
connection_type = teradata
database = js255063
disabled = 0
host = host.teradata.com
identity = SPlunk_to_TD
jdbcUseSSL = false
localTimezoneConversionEnabled = false
port = 1025
readonly = false
timezone = Australia/Sydney
customizedJdbcUrl =


When trying to save above connections setting I get error

2020-04-22 13:08:22.479 +1000  [dw-59 - POST /api/connections/status] ERROR io.dropwizard.jersey.errors.LoggingExceptionMapper - Error handling a request: ddf18f64885b8955
java.lang.NullPointerException: null
    at com.splunk.dbx.connector.logger.AuditLogger.replace(AuditLogger.java:50)
    at com.splunk.dbx.connector.logger.AuditLogger.error(AuditLogger.java:44)
    at com.splunk.dbx.server.api.service.database.impl.DatabaseMetadataServiceImpl.getStatus(DatabaseMetadataServiceImpl.java:159)
    at com.splunk.dbx.server.api.service.database.impl.DatabaseMetadataServiceImpl.getConnectionStatus(DatabaseMetadataServiceImpl.java:116)
    at com.splunk.dbx.server.api.resource.ConnectionResource.getConnectionStatusOfEntity(ConnectionResource.java:72)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
...
0 Karma
1 Solution

jssun
Explorer

Hi @PavelP thanks for helping out.

I figured out the problem eventually. The teradata jdbc drivers have 2 .jar files, the tdgssconfig.jar does not actually contain any drivers, thats why there was a WARN msg and not an error msg. the next INFO msg says multiple versions of drivers found, and thats because in the terajdbc4.jar there are 2 driver files one in the 'ncr' folder one in the 'teradata' folder. the next INFO msg says it loaded the driver in the 'teradata' folder, which is the correct thing to do.

The actual problem had nothing to do with this frustratingly, it was because in creating identities i had wrongly entered my splunk admin user details instead of the teradata user details, I noticed this once I switched to DEBUG on my log.

View solution in original post

0 Karma

jssun
Explorer

Hi @PavelP thanks for helping out.

I figured out the problem eventually. The teradata jdbc drivers have 2 .jar files, the tdgssconfig.jar does not actually contain any drivers, thats why there was a WARN msg and not an error msg. the next INFO msg says multiple versions of drivers found, and thats because in the terajdbc4.jar there are 2 driver files one in the 'ncr' folder one in the 'teradata' folder. the next INFO msg says it loaded the driver in the 'teradata' folder, which is the correct thing to do.

The actual problem had nothing to do with this frustratingly, it was because in creating identities i had wrongly entered my splunk admin user details instead of the teradata user details, I noticed this once I switched to DEBUG on my log.

0 Karma

PavelP
Motivator

Hello @jssun, can you post the full error message? Run-time java error messages should be read from the bottom up.

0 Karma

jssun
Explorer

hi @PavelP i have played around for a few hours so the error id has changed but its still the same error msg. thanks for helping!

2020-04-22 17:50:55.039 +1000  [Checkpoint-Cleaner-0] INFO  c.s.d.s.m.CheckpointCleaner$CheckpointCleanerTask - action=start_checkpoint_cleaner_task
2020-04-22 17:50:55.039 +1000  [Checkpoint-Cleaner-0] INFO  c.s.d.s.m.CheckpointCleaner$CheckpointCleanerTask - action=checkpoint_files_to_be_deleted []
2020-04-22 18:35:00.922 +1000  [dw-87 - POST /api/drivers/reload] WARN  com.splunk.dbx.service.driver.DriverServiceImpl - action=load_drivers Can not load any driver from files [/Applications/Splunk/etc/apps/splunk_app_db_connect/drivers/terajdbc4-libs/tdgssconfig.jar]
2020-04-22 18:35:00.927 +1000  [dw-87 - POST /api/drivers/reload] INFO  com.splunk.dbx.service.driver.DriverServiceImpl - action=load_drivers multiple version drivers exist, 2 drivers found.
2020-04-22 18:35:00.927 +1000  [dw-87 - POST /api/drivers/reload] INFO  com.splunk.dbx.service.driver.DriverServiceImpl -    driver name is com.splunk.dbx.service.driver.DelegatingDriver, select version 15.0, loaded from file terajdbc4.jar
2020-04-22 18:35:00.927 +1000  [dw-87 - POST /api/drivers/reload] INFO  com.splunk.dbx.service.driver.DriverServiceImpl - action=load_drivers spent 7 ms to rescan all jdbc drivers
2020-04-22 18:35:10.603 +1000  [dw-87 - POST /api/connections/status] ERROR io.dropwizard.jersey.errors.LoggingExceptionMapper - Error handling a request: 848e7ca9d5927871
java.lang.NullPointerException: null
    at com.splunk.dbx.connector.logger.AuditLogger.replace(AuditLogger.java:50)
    at com.splunk.dbx.connector.logger.AuditLogger.error(AuditLogger.java:44)
    at com.splunk.dbx.server.api.service.database.impl.DatabaseMetadataServiceImpl.getStatus(DatabaseMetadataServiceImpl.java:159)
    at com.splunk.dbx.server.api.service.database.impl.DatabaseMetadataServiceImpl.getConnectionStatus(DatabaseMetadataServiceImpl.java:116)
    at com.splunk.dbx.server.api.resource.ConnectionResource.getConnectionStatusOfEntity(ConnectionResource.java:72)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:392)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:365)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:318)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
    at io.dropwizard.jetty.NonblockingServletHolder.handle(NonblockingServletHolder.java:50)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617)
    at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:35)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
    at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:47)
    at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:41)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
    at com.splunk.dbx.server.api.filter.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:30)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:249)
    at io.dropwizard.jetty.RoutingHandler.handle(RoutingHandler.java:52)
    at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717)
    at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:54)
    at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.Server.handle(Server.java:500)
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
    at java.lang.Thread.run(Thread.java:748)
MUSJS255063-202:splunk js255063$
0 Karma

PavelP
Motivator

are you on MAC? Check permissions, make sure splunk can read/load the driver and restart splunk
The error message is: Can not load any driver from files /Applications/Splunk/etc/apps/splunk_app_db_connect/drivers/terajdbc4-libs/tdgssconfig.jar

0 Karma
Get Updates on the Splunk Community!

.conf24 | Registration Open!

Hello, hello! I come bearing good news: Registration for .conf24 is now open!   conf is Splunk’s rad annual ...

ICYMI - Check out the latest releases of Splunk Edge Processor

Splunk is pleased to announce the latest enhancements to Splunk Edge Processor.  HEC Receiver authorization ...

Introducing the 2024 SplunkTrust!

Hello, Splunk Community! We are beyond thrilled to announce our newest group of SplunkTrust members!  The ...