質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

346閲覧

Vagrantで立ち上げたLinuxのOracleにJDBCで接続したいがエラーが出て解決できない

退会済みユーザー

退会済みユーザー

総合スコア0

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2017/11/24 12:05

vagrantを使って仮想サーバを立ち上げOracleをインストールしました。
しかし、ゲストOS(Windows8.1)からeclipseでJDBCを使って接続しようと試みましたが、エラーが発生して解決できません。

■Linuxの情報
・ホスト名   vagrant-centos65.vagrantup.com

■Oracleの情報
・tnsnames.ora

# tnsnames.ora Network Configuration File: XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = vagrant-centos65.vagrantup.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

・listener.ora

# listener.ora Network Configuration File: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) (ADDRESS = (PROTOCOL = TCP)(HOST = vagrant-centos65.vagrantup.com)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (XE)

■Javaのコード

package test.main; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * DBUnitテストのmainを持つクラス。 * @author tarosa0001 */ public class TestMain { /** ロガー */ private static Logger logger = LoggerFactory.getLogger(TestMain.class); /** 実行するSQL */ private static final String SQL = " update " + " EMP " + " set " + " name = 'tiger' " + " where " + " id = 1; "; /** * @param args */ public static void main(String[] args) { logger.info("処理開始"); // --------------------------------- // DBを更新する // --------------------------------- try { Class.forName ("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { logger.error("エラー", e); } try(Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@vagrant-centos65.vagrantup.com:1521:XE", "TRY", "nobu2214"); PreparedStatement stmt = conn.prepareStatement(SQL); ) { conn.setAutoCommit(false); int i = stmt.executeUpdate(); // 処理件数を表示する logger.info("処理件数:[" + i + "]"); conn.commit(); } catch(Exception e) { logger.error("エラー", e); } logger.info("処理終了"); } }

■エラー内容

20:55:13.445 [main] INFO test.main.TestMain - 処理開始 20:55:13.695 [main] ERROR test.main.TestMain - エラー java.sql.SQLRecoverableException: IOエラー: The Network Adapter could not establish the connection at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at test.main.TestMain.main(TestMain.java:42) Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:445) at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:464) at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:594) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:229) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486) ... 7 common frames omitted Caused by: java.net.UnknownHostException: vagrant-centos65.vagrantup.com at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) at java.net.InetAddress.getAllByName0(InetAddress.java:1276) at java.net.InetAddress.getAllByName(InetAddress.java:1192) at java.net.InetAddress.getAllByName(InetAddress.java:1126) at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:117) at oracle.net.nt.ConnOption.connect(ConnOption.java:133) at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:411) ... 12 common frames omitted 20:55:13.695 [main] INFO test.main.TestMain - 処理終了

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらくですが、ファイヤーウォールにより遮断されているのではないかと推測します。

切り分けとしては、service iptables stop等で一時的にファイヤーウォールを無効化sて再度接続を試してみることが考えられます。

投稿2017/11/24 15:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/11/24 21:54

ファイアウォールを無効化したところ正常に完了しました。 また、以下のサイトを参考にファイアウォールの設定をしても、正常に完了することができました。 https://knowledge.sakura.ad.jp/4048/ ありがとうございました。助かります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問