"ORA-12154: TNS:..." error after successful oracle connection

Hi,

After a few days of struggling, I was able to run this command
successfully.

ruby -r oci8 -e "OCI8.new('xxx_dba', 'xxx', '//xxxx:1521/
xxxxx.xxx.org').exec('SELECT 1 from dual') {|r| puts r.join}"

I got "1.0" as output and I got my prompt back.

So, I went back to the RoR app that I am working on, started WEBrick
in Radrails but I got this error:

ORA-12154: TNS:could not resolve the connect identifier specified

RAILS_ROOT: ./script/../config/..
Application Trace | Framework Trace | Full Trace

env.c:257:in oci8lib.so
C:/web/IPSO/app/controllers/attending_ips_controller.rb:140:in
`get_most_recent_record'
C:/web/IPSO/app/controllers/attending_ips_controller.rb:26:in
`new_edit'
-e:4:in `load'
-e:4

C:/ruby_prod/lib/ruby/site_ruby/1.8/oci8.rb:229:in `initialize'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:585:in `new'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:585:in
`new_connection'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:621:in
`initialize'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:35:in `new'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:35:in
`oracle_connection'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/abstract/connection_specification.rb:
262:in `send'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/abstract/connection_specification.rb:
262:in `connection_without_query_cache='
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/query_cache.rb:54:in `connection='
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/abstract/connection_specification.rb:
230:in `retrieve_connection'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/abstract/connection_specification.rb:
78:in `connection'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/base.rb:427:in `find_by_sql'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/base.rb:1101:in `send'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/base.rb:1101:in `perform_action_without_filters'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/filters.rb:696:in `call_filters'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/filters.rb:688:in `perform_action_without_benchmark'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/benchmarking.rb:66:in
`perform_action_without_rescue'
C:/ruby_prod/lib/ruby/1.8/benchmark.rb:293:in `measure'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/benchmarking.rb:66:in
`perform_action_without_rescue'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/rescue.rb:83:in `perform_action'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/base.rb:435:in `send'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/base.rb:435:in `process_without_filters'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/filters.rb:684:in
`process_without_session_management_support'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/session_management.rb:114:in `process'
C:/ruby_prod/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/
action_controller/base.rb:334:in `process'
C:/ruby_prod/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/dispatcher.rb:
41:in `dispatch'
C:/ruby_prod/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:
113:in `handle_dispatch'
C:/ruby_prod/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:
79:in `service'
C:/ruby_prod/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
C:/ruby_prod/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:162:in `start'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:95:in `start'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:92:in `each'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:92:in `start'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:23:in `start'
C:/ruby_prod/lib/ruby/1.8/webrick/server.rb:82:in `start'
C:/ruby_prod/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:
63:in `dispatch'
C:/ruby_prod/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/commands/servers/
webrick.rb:59
C:/ruby_prod/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
C:/ruby_prod/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/
active_support/dependencies.rb:495:in `require'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/
active_support/dependencies.rb:342:in `new_constants_in'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/
active_support/dependencies.rb:495:in `require'
C:/ruby_prod/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/commands/server.rb:
39
C:/ruby_prod/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
C:/ruby_prod/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
script/server:3

env.c:257:in oci8lib.so
C:/ruby_prod/lib/ruby/site_ruby/1.8/oci8.rb:229:in `initialize'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:585:in `new'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:585:in
`new_connection'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:621:in
`initialize'
C:/ruby_prod/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/
active_record/connection_adapters/oracle_adapter.rb:35:in `new'
...
...

does this mean my database.yml is not right? I am using exactly same
database.yml compare to prod box.
database.yml

development:

  adapter: oracle
  database: //xxxx:1521/xxxxx.xxx.org
  username: xxxx_dba
  password: xxxx

this setup is working fine in prod box that runs ruby 1.8.6, rails
2.1.0, and oracle instant client. The only difference that I can think
of is that prod box runs mongrel as a windows service.

am I missing something here?

kimda <tkkscf@...> writes:

Hi kimda

The TNS error message from Oracle suggests the problem is with your
database string.

But your ruby oci8 diagnostic looks good (providing all the x's match) and
I've checked here and a similar ruby oci8 connection string also works for
me in Rails. (I usually rely on tnsnames.ora which is why I had to change
my connection string to check.)

However, I'm not running rails thru radrails - I'm using mongrel_rails from
command line here.

The only thing I can think of is that the process running radrails has some
problem using or supplying the connection info to Oracle.

Might be worth running rails from the command line in the same process
that can successfully run the ruby oci8 command.

regards

Greg

Hi Greg,

You were right! Running the server from command line solved my issue.

thanks!
Daniel

Glad to hear it kimda. Thanks for letting me know it worked.