Rafael
-I did place it in the jars/3rdparty folder.
Storage Plugin Config:
{
"type": "jdbc",
"enabled": true,
"driver": "oracle.jdbc.driver.OracleDriver",
"url": "jdbc:oracle:thin:username/password@chris-ora-scan:1521/chris_app"
}
(it's been modified to remove sensitive information)
Charles
-I did turn Verbose on as you instructed, below is the full stacktrace. Now I
will say that the one DBA I was conversing with mentioned something about JRE,
and I find interesting in this stack trace that it seems to be a RunTime
exception.
-I'm not sure if I was aware they were at a version 10? This is the link I was
using to download the JDBC driver:
https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html
and the only options I see available and relevant are either ojdbc7.jar or
ojdbc6.jar. At this point I've tried both but am willing to change my
configuration while troubleshooting. In addition the recommended driver for
Oracle by Apache seems to be ojdbc7.12.1.0.2.jar referenced from this page
here: https://drill.apache.org/docs/rdbms-storage-plugin/ and that is the one I
am currently using, ojdbc7.jar from the 12.1.0.2 release of Oracle Database.
2020-06-23 14:52:37,017 [qtp377017996-50] ERROR
o.a.d.e.server.rest.StorageResources - Unable to create/ update plugin: QA2
Oracle
org.apache.drill.common.exceptions.ExecutionSetupException: Failure setting up
new storage plugin configuration for config
org.apache.drill.exec.store.jdbc.JdbcStorageConfig@7d9c9e53
at
org.apache.drill.exec.store.StoragePluginRegistryImpl.create(StoragePluginRegistryImpl.java:536)
at
org.apache.drill.exec.store.StoragePluginRegistryImpl.createOrUpdate(StoragePluginRegistryImpl.java:132)
at
org.apache.drill.exec.server.rest.PluginConfigWrapper.createOrUpdateInStorage(PluginConfigWrapper.java:56)
at
org.apache.drill.exec.server.rest.StorageResources.createOrUpdatePluginJSON(StorageResources.java:212)
at
org.apache.drill.exec.server.rest.StorageResources.createOrUpdatePlugin(StorageResources.java:233)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
at
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
at
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1780)
at
org.apache.drill.exec.server.rest.CsrfTokenValidateFilter.doFilter(CsrfTokenValidateFilter.java:55)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767)
at
org.apache.drill.exec.server.rest.CsrfTokenInjectFilter.doFilter(CsrfTokenInjectFilter.java:54)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:224)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:539)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
at
org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
at
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.RuntimeException: Rule description
'JDBC_DREL_ConverterJDBC.QA2 Oracle' is not valid
at org.apache.calcite.plan.RelOptRule.<init>(RelOptRule.java:104)
at org.apache.calcite.rel.convert.ConverterRule.<init>(ConverterRule.java:78)
at
org.apache.drill.exec.store.jdbc.JdbcStoragePlugin$JdbcDrelConverterRule.<init>(JdbcStoragePlugin.java:224)
at
org.apache.drill.exec.store.jdbc.JdbcStoragePlugin$DrillJdbcConvention.<init>(JdbcStoragePlugin.java:119)
at
org.apache.drill.exec.store.jdbc.JdbcStoragePlugin.<init>(JdbcStoragePlugin.java:103)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at
org.apache.drill.exec.store.StoragePluginRegistryImpl.create(StoragePluginRegistryImpl.java:528)
... 56 common frames omitted
-----Original Message-----
From: Charles Givre <[email protected]>
Sent: Tuesday, June 23, 2020 2:51 PM
To: [email protected]
Subject: Re: Initial Oracle Setup
One more thing...
Did you try with the current Oracle JDBC driver? I believe they are at version
10 now.
Thanks,
-- C
> On Jun 23, 2020, at 1:59 PM, Rafael Jaimes III <[email protected]> wrote:
>
> Hi Chris,
>
> You put the JDBC driver in the 3rd party folder?
>
> You're right you might be onto something if you get the password
> failed message. Can you post the exact text (JSON) of the storage
> plugin config?
>
> -Rafael
>
> On Tue, Jun 23, 2020 at 1:56 PM Christopher Kane
> <[email protected]> wrote:
>>
>> Hey Everyone,
>>
>> I'm looking to setup and create a new Oracle Storage Plugin for my local
>> Apache Drill instance. I have determined that a correct oracle connection
>> string with an incorrect password results in the following message: Please
>> retry: Error while creating / updating storage : java.sql.SQLException:
>> Cannot create PoolableConnectionFactory (ORA-01017: invalid
>> username/password; logon denied ). Now updating the connection string to use
>> the correct password results in the following message: Please retry: Error
>> while creating / updating storage : Rule description
>> 'JDBC_DREL_ConverterJDBC.QA2 Oracle' is not valid.
>>
>> I have confirmed with our DBAs and through my own testing that my connection
>> string is correct. When attempting to google anything related to the message
>> 'JDBC_DREL_Converter' unfortunately I am not able to find anything useful.
>> At this point I'm kind of grasping at straws as to what my issue is at this
>> point. In addition I also have the correct oracle thin driver installed,
>> which was the recommend one from the RDBMS page within the Apache Drill
>> documentation and I've also added this line to my drill-override.conf,
>> drill.exec.sys.store.provider.local.path = "ojdbc7.jar". But I'm assuming if
>> any of that wasn't setup correctly, I wouldn't be able to get an error
>> message back from Oracle saying that my password was incorrect. Any help in
>> regards to this would be greatly appreciated.
>>
>> Christopher Kane
>> Software Test Engineer | Clover, CardConnect, FiServ
>> [email protected]<mailto:[email protected]>,
>> [email protected]<mailto:Christopher.Kane@cardconnect.
>> com>,
>> [email protected]<mailto:[email protected]
>> m>, [email protected]<mailto:[email protected]>
>>
>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are
>> proprietary and confidential information protected from disclosure and
>> intended only for the use of the recipient(s) named above. If the reader of
>> this message is not the intended recipient, or an employee or agent
>> responsible for delivering this message to the intended recipient, you are
>> hereby notified that any dissemination, distribution or copying of this
>> message or any attachments is strictly prohibited. If you have received this
>> communication in error, please notify CardConnect immediately by replying to
>> this message and then delete this message and any attachments from your
>> computer.
THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are
proprietary and confidential information protected from disclosure and intended
only for the use of the recipient(s) named above. If the reader of this message
is not the intended recipient, or an employee or agent responsible for
delivering this message to the intended recipient, you are hereby notified that
any dissemination, distribution or copying of this message or any attachments
is strictly prohibited. If you have received this communication in error,
please notify CardConnect immediately by replying to this message and then
delete this message and any attachments from your computer.