# LogStash reading data from Oracle database using Oracle Wallet

**URL:** <https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181>\
**Category:** Logstash\
**Created:** [May 27, 2016, 5:01pm UTC](https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181 "2016-05-27T17:01:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kkr78](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kkr78/32/33806_2.png) [@kkr78](https://discuss.elastic.co/u/kkr78)\
**Post date:** [May 27, 2016, 5:01pm UTC](https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181/1 "2016-05-27T17:01:08Z")

</div>

Our security team has strict policy using the password in the configuration file so we have to use wallet. I am trying to setup Logstah to work with Oracle wallet. has anyone successfully configured with Oracle wallet? I don't have much experience with ruby so bear with me if it is silly question. I understand Logstash uses ruby libraries underneath and ruby runs on JDK . We never had problem using wallet from Java. As per my knowledge, if java supports it, ruby should unless if its not invoking the right API's. If jdbc ruby does not support wallet, is there way to configure password in separate file and pass that file path as value for "jdbc\_password" in Logstash configuration?

Here is the Logstash configuration

jdbc {  
jdbc\_connection\_string =\> "jdbc:oracle:thin:/@WALLET"  
jdbc\_user =\> ""  
jdbc\_password =\> ""  
jdbc\_driver\_library =\> "/jdbc/lib/ojdbc6.jar"  
jdbc\_driver\_class =\> "Java::oracle.jdbc.driver.OracleDriver"  
jdbc\_fetch\_size =\> 50  
statement =\> "SELECT \* from MYTABLE partition(P20160520)"  
type =\> "db-mytable"  
use\_column\_value =\> true  
tracking\_column =\> "MSG\_ID"  
#last\_run\_metadata\_path =\> "../logstash\_jdbc\_last\_run"  
record\_last\_run =\> true  
clean\_run =\> false  
}

Exception

Pipeline aborted due to error {:exception=\>#\<Sequel::DatabaseConnectionError: Java::JavaSql::SQLRecoverableException:## **IO Error: Unknown host specified** \>, :backtrace=\>["oracle.jdbc.driver.T4CConnection.logon(oracle/jdbc/driver/T4CConnection.java:419)", "oracle.jdbc.driver.PhysicalConnection.(oracle/jdbc/driver/PhysicalConnection.java:536)", "oracle.jdbc.driver.T4CConnection.(oracle/jdbc/driver/T4CConnection.java:228)", "oracle.jdbc.driver.T4CDriverExtension.getConnection(oracle/jdbc/driver/T4CDriverExtension.java:32)", "oracle.jdbc.driver.OracleDriver.connect(oracle/jdbc/driver/OracleDriver.java:521)", "java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:606)", "RUBY.connect(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/adapters/jdbc.rb:222)", "RUBY.make\_new(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool.rb:103)", "RUBY.make\_new(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:224)", "RUBY.available(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:197)", "RUBY.\_acquire(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:133)", "RUBY.acquire(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:147)", "RUBY.sync(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:265)", "org.jruby.ext.thread.Mutex.synchronize(org/jruby/ext/thread/Mutex.java:149)", "RUBY.sync(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:265)", "RUBY.acquire(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:146)", "RUBY.hold(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/connection\_pool/threaded.rb:104)", "RUBY.synchronize(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/database/connecting.rb:256)", "RUBY.test\_connection(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/sequel-4.33.0/lib/sequel/database/connecting.rb:266)", "RUBY.prepare\_jdbc\_connection(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-3.0.2/lib/logstash/plugin\_mixins/jdbc.rb:170)", "RUBY.register(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-3.0.2/lib/logstash/inputs/jdbc.rb:167)", "RUBY.start\_inputs(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.2-java/lib/logstash/pipeline.rb:330)", "org.jruby.RubyArray.each(org/jruby/RubyArray.java:1613)", "RUBY.start\_inputs(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.2-java/lib/logstash/pipeline.rb:329)", "RUBY.start\_workers(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.2-java/lib/logstash/pipeline.rb:180)", "RUBY.run(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.2-java/lib/logstash/pipeline.rb:136)", "RUBY.start\_pipeline(/home/logstash-2.3.2/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.2-java/lib/logstash/agent.rb:465)", "java.lang.Thread.run(java/lang/Thread.java:745)"], :level=\>:error, :file=\>"logstash/agent.rb", :line=\>"467", :method=\>"start\_pipeline"}  
stopping pipeline {:id=\>"main", :file=\>"logstash/agent.rb", :line=\>"404", :method=\>"shutdown\_pipelines"}

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [May 29, 2016, 11:46am UTC](https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181/2 "2016-05-29T11:46:06Z")

</div>

> Pipeline aborted due to error {:exception=\>#IO Error: Unknown host specified\>, :backtrace=\>["oracle.jdbc.driver.T4CConnection.logon(oracle/jdbc/driver/T4CConnection.java:419)",

To me this indicates a problem with the connection string.

> If jdbc ruby does not support wallet, is there way to configure password in separate file and pass that file path as value for "jdbc\_password" in Logstash configuration?

Yes, that functionality was added a few weeks ago ([PR #128](https://github.com/logstash-plugins/logstash-input-jdbc/pull/128)) and included in logstash-input-jdbc 4.0.2.

---

<div class="post-metadata">

**Author:** ![kkr78](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kkr78/32/33806_2.png) [@kkr78](https://discuss.elastic.co/u/kkr78)\
**Post date:** [May 31, 2016, 2:00pm UTC](https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181/3 "2016-05-31T14:00:01Z")

</div>

when using wallet, connection string passes the alias name which matches service name in tnsnames.ora. The connection string will not contain host name and port number

jdbc\_connection\_string =\> "jdbc:oracle:thin:/@WALLET"

You can find more explanation here

> <https://stackoverflow.com/questions/7634196/what-is-correct-jdbc-url-syntax-if-oracle-wallets-are-used/9772728#9772728>

I looked at jdbc.rb code, i think it need to be enhanced to support Oracle Wallet .I debugged code little bit. I printed the props and args to console. The code is passing the userid , password which is not required in case of wallet. I think "driver" class might be parsing the connection string and passing the host name and port number. where can i report this issue?

driver.new.connect(args[0], props)

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [May 31, 2016, 2:06pm UTC](https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181/4 "2016-05-31T14:06:32Z")

</div>

Issues with the jdbc input plugin can be reported here: [https://github.com/logstash-plugins/logstash-input-jdbc/issues/new](https://github.com/logstash-plugins/logstash-input-jdbc/issues/new)

---

<div class="post-metadata">

**Author:** ![kkr78](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kkr78/32/33806_2.png) [@kkr78](https://discuss.elastic.co/u/kkr78)\
**Post date:** [May 31, 2016, 3:25pm UTC](https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181/5 "2016-05-31T15:25:07Z")

</div>

Thanks Magnus. I filed issue [https://github.com/logstash-plugins/logstash-input-jdbc/issues/135](https://github.com/logstash-plugins/logstash-input-jdbc/issues/135)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 4:55am UTC](https://discuss.elastic.co/t/logstash-reading-data-from-oracle-database-using-oracle-wallet/51181/6 "2017-07-06T04:55:12Z")

</div>


