ActiveRecord を使用して Oracle データベースにアクセスするサーバーを Sinatra を使用して作成しました (ただし、これは Rails アプリではありません)。私はシナトラの「古典的な」スタイルでそれを書き、以前は次のようにサーバーを起動しました:
bundle exec ruby bin/server.rb
私も使用require 'thin'
し、Thin は魔法のように HTTP サーバーとして使用されました。ただし、Thin のデフォルトのタイムアウトを変更する必要があったため、rackupconfig.ru
ファイルに移行しました。次のようにサーバーを起動します。
bundle exec thin -C config/thin.yml -R config/config.ru start
ただし、これを行ってから、サーバーで Oracle データベースに接続できません。サービス名を使用しており、TNS_ADMIN
環境変数が正しく設定されているためsqlplus
、Thin を使用して起動していない場合でも、同じサーバーに接続できます。Thin で起動し、接続を開始しようとするとOCIError - ORA-12154: TNS:could not resolve the connect identifier specified
.
Thin で起動されたサーバーの環境変数を設定する正しい方法は何ですか? ruby-oci8 に情報を与えることができないため、ここでの解決策は機能しません。環境から自動的に読み取られます。