PostgreSQLに接続できないエラーが発生しました

このQ&Aのポイント
  • PostgreSQLへの接続をテストした際に、エラーが発生しました。
  • ドライバー関係の失敗を示すエラーメッセージが表示されました。
  • このエラーメッセージに対する対処方法を知っている方、ご教示いただけませんか?
回答を見る
  • ベストアンサー

PostgreSQLに接続できません

只今、PostgreSQLへの接続をテストしようと思い、失敗しました。以下のエラーが出ます。 Something unusual has occured to cause the driver to fail. Please report this ex ception: Exception: java.lang.ArrayIndexOutOfBoundsException Stack Trace: ちなみに、Driverはpgjdbc2をjre\lib\extに置いてます。 PostgreSQLのversionは、postgresql-7.2.1-win32です。 Javaファイルは、以下のように接続部分を記述してます。 Class.forName("org.postgresql.Driver"); エラーメッセージは、ドライバー関係が失敗したと言っているようですが。。。 だれか、経験者の方、このエラーメッセージなら対処方法が分かるという方、ご返事ください。よろしくお願いします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • noopee
  • ベストアンサー率38% (114/297)
回答No.1

こんにちは。 >Something unusual has occured to cause the driver to fail. Please report this exception これは、なんかエラーが起きてるときはたいてい吐き出される定型文のような感じがしていますが。 >java.lang.ArrayIndexOutOfBoundsException ここが実際のエラーメッセージだと思います。 あまりJavaは使ってませんが、ちょろっとJavaのドキュメントを見たところ、「不正な添字を使って配列がアクセスされたことを示すためにスローされます。つまり、添字が負または、配列のサイズ以上の場合です。」という記述がありました。 どのようなソースをかかれているのかわかりませんが、telnet等でDBにアクセスできるならドライバ関連ではないと思いますが、その辺は確認されましたか?

kamkamkam3
質問者

お礼

ご回答ありがとうございます。 ドライバ関連ではないのですね。どうもありがとうございます。 実を言いますと、あの後、ソースコードを点検したところ、コロンを入れる位置を間違ってました。まさか、そんなエラーとは思っていなかったんで。。 私もPostgreSQLを初めて使って、ドライバ云々という文字が見えたので、ドライバがおかしいと思い込んでました。 その後、しっかりできました。 確かに、不正な添え字のせいでした。勉強になりました。どうもありがとうございます。 ソースコードミスとは思わなかったので。。。どうもありがとうございました。

関連するQ&A

  • TomcatとPostgreSqlの接続について

    Tomcat4.0.4とApache1.3.26を使用しDBはPostgreSQLをつかっているのですが、DB接続がうまくいきません。 接続の際の記述は以下の通りです public void init(ServletConfig conf) throws ServletException { try{ Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://localhost:8080:5432/test"; String user = "nakayama"; String pwd = "noah"; con = DriverManager.getConnection(url,user,pwd); }catch(Exception e){ err = err + "DataBase Connection err = " +e+"<br>"; } } これで実行すると、以下のエラーが出ます。 DataBase Connection err = Something unusual has occured to cause the driver to fail. Please report this exception: Exception: java.lang.NullPointerException Stack Trace: java.lang.NullPointerException at org.postgresql.Connection.openConnection(Connection.java:155) at org.postgresql.Driver.connect(Driver.java:149) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at toroku2.init(toroku2.java:24) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655) at ・・・・・ どうすれば解決できるのでしょうか? 教えてくださいm(__)m

    • ベストアンサー
    • Java
  • Javaでデータベース(PostgreSQL)に接続したいです

    学校でJavaの勉強をしています。この前、DB(PostgreSQL)に接続しました。 勉強のため、家のPCでもDBに接続できるようにしたいです。 自分で試してみましたが、上手くいかないので、知識をお持ちの方、どうかご教示ください。 ・Javaのバージョン     JDK1.5.08 ・PostgresSQLのバージョン  PostgresSQL8.2 ・OS               WindowsXP このサイト http://jdbc.postgresql.org/download.html から、postgresql-8.2-504.jdbc3をダウンロードしました。 ダウンロードしたファイルを、Program Files>Java>jdk1.5.0_08>jre>lib>ext と   Program Files>Java>jre1.5.0_08>lib>ext に 入れました。 (学校ではこのextというフォルダに入れていました。ちなみに学校のPCに入れたファイルは postgresql-jdbc3でした。) 学校の環境ではデータベースにアクセスできました。なので、SQL文とDBに接続するための Javaのコードは正しいと思います。 しかし実行すると、NullPointerException というエラーが出ます。 ファイルを入れた場所が間違っていると思うのですが、postgresql-8.2-504.jdbc3は どのフォルダに入れればよいのでしょうか。 解決する知識をお持ちの方、どうかご教示願います。 宜しくお願いいたします。

    • ベストアンサー
    • Java
  • javaでdbに接続したいのですが。

    javaからポストグレに接続したいのですが、エラーになります。 Class.forName("org.postgresql.Driver");の部分でclassnotfoundexceptionが発生しますので、 ドライバにパスが通ってないのでしょうか? PostgreSQL 8.4 postgresql-8.4-703.jdbc4.jar です。 システムの詳細設定でシステム環境変数 CLATHPASSにちゃんと設定しているのですがT T

    • ベストアンサー
    • Java
  • PostgreSQLと、AccessをODBC接続

    PostgreSQL初心者です。 AccessからPostgreSQLに移行しようと思い、ODBCで接続しようとしたのですが、エラーが発生して進めません! そして、いろいろ試してみたのですが、同じエラーが発生してしまいます。 設定、エラー内容は、下記になります。 エラー内容 「ODBC--呼び出しが失敗しました。 Could not connect to the server; Could not resolve hostname.(#101)[Microsoft][ODBC Driver Manager]ドライバのSQLSetConnectAttrは失敗しました。(#0)」 設定 データソース(ODBC)→システムDSN→PostgreSQL Driver Setup Database Server dbserver User Name localhost Description Port 5432 以上、宜しくお願い致します。 OS:WindowsXP Professional Version 2002 Service Pack3 PostgreSQL 9.1 Version 1.14.3 Access XP(2002) になります。

  • Linux-PostgreSQLのテーブルをWindowsPCに表示

    会社で今行っている内容です(研修)。 内容: 自分のPC(Windows2000)で、他PC(RedHatLinux7.3)のDB(PostgreSQL7.4.2)内のテーブルを表示させる。 問題点: どこが間違っているのか漠然としているが、 ソースかJDBC設定があやしいと思います。 進め方: (1)Linux・PostgreSQLをインストール・設定  PostgreSQL内でテーブルを作成・表示済み (2)tomcat4.1.30・Apache1.3.27_4をインストール・設定  (WindowsのIEでtomcat・Apacheのページが開けるか確認済み) (4)JDBC設定(emacs ~/.bash_profile→CLASSPATH) (3)JDK1.3.1_11・mod_jk(モジュール)をインストール・設定  sampleソースをLinuxに送り、それをWindows上で表示servletを作成し、*.javaで保存 (4)FTPでLinux側に送り、コンパイルし*.class生成  /usr/local/tomcat/webapps/examples/WEB-INF/classes/  に移動 (5)Windows上で表示(予定)  http://localhost:8080/examples/servlet/ファイル名 エラー内容: (1)Exception in thread "main" ava.lang.NoClassDefFound Error;【class名】 (2)Something unusual has occured to cause the driver to fail.Pleas report this exception:Exception:java.sql.SQLException:FATAL1: No pg_hda.conf entry for host 127.0.0.1,user postgres,database 【database名】 Staek Trace: at ~ が5行 Endof Stack Trace at ~ が4行 Linux・PostgreSQL・Javaすべてまったくの初心者です。 アドバイスよろしくお願いします。

  • postgreSQL を OleDB 接続

    postgreSQL が Linux:CentOS上にあり OS:Windows Vista 開発環境 : VisualStudio 2005 言語 : C# ソフトを開発しております、接続は正常に終了(OleDbConnectionのOpen())するのですが 読み込みコマンドが失敗します(OleDbDataAdapterのFill) "'PostgreSQL OLE DB Provider' は失敗しましたが、エラー メッセージはありません。結果コードは -2147221163(0x80040155) です。" 解決方法をご存知のかたいらっしゃいますでしょうか?

  • PostgreSQLに書き込むことが出来ない

    環境→Windows XP Home Edition Apache→Apache 2.0.59 PostgreSQL→PostgreSQL8.1.6 PHP→PHP4.4.4 DBに書き込もうとしていますがなかなか上手くできません。 <?php //データベースに接続する $conn = pg_pconnect("user=postgres password=grjtf dbname=mytbl"); //データベースに接続出来るかチェック if(!$conn) { //エラーメッセージ echo "An error occured.\n"; exit; } else { //接続成功メッセージ print "DB(mytbl)に接続しました。<br>"; } //データベースに接続し、mytblからidとnameを取り出す $result = pg_query($conn,"SELECT id,name FROM mytbl"); //データベース(mytbl)からidとnameを取得する if (!$result) { //エラーメッセージ echo "An error occured.\n"; exit; } else { //接続成功メッセージ print "idとnameを取得しました。<br>"; } //データベースmytblに書き込む if(isset($_POST["action"]) && $_POST["sign"] == '書き込み') { //名前とスコアが何も書かれていなかった場合 if($_POST["id"] && $_POST["name"]) { //データベースに書き込む $sql="INSERT INTO mytbl(id,name) VALUES('$id','$name')"; pg_query($conn,$sql); //成功メッセージ print "DB(mytbl)に書き込みました。<br><br>"; } else { //エラーメッセージ print "書き込めませんでした。<br><br>"; } }

    • ベストアンサー
    • PHP
  • Tomcat+Postgresql 起動時のエラー

    以下のようなエラーが発生するのですが どういった原因が考えられるでしょうか? よろしくお願いいたします。 環境 postgresql-7.4.12 tomcat5.0 jdk1.4.2 以下、プログラムログ [FATAL] 2011-02-17 08:25:41 [TP-Processor6] org.postgresql.util.PSQLException: The backend has broken the connection. Possibly the action you have attempted has caused it to close. [WARN ] 2011-02-17 08:25:41 [TP-Processor6] java.lang.RuntimeException: org.postgresql.util.PSQLException: The backend has broken the connection. Possibly the action you have attempted has caused it to close. [FATAL] 2011-02-17 08:25:41 [TP-Processor3] org.postgresql.util.PSQLException: An I/O error has occured while flushing the output - Exception: java.net.SocketException: Broken pipe Stack Trace: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124) 以下、catalineログ -- [GC 1147257K->973413K(2073856K), 0.1046160 secs] org.postgresql.util.PSQLException: The backend has broken the connection. Possibly the action you have attempted has caused it to close. at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:168) at org.postgresql.core.QueryExecutor.executeV3(QueryExecutor.java:128) at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:101) at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:43) at org.postgresql.jdbc1.AbstractJdbc1Connection.execSQL(AbstractJdbc1Connection.java:875) at org.postgresql.jdbc1.AbstractJdbc1Connection.setAutoCommit(AbstractJdbc1Connection.java:1266) at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:266) at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:338)

  • AndroidからPostgresqlへの接続

    どうしてもうまくいかないので教えてください。。。 当方Eclipseにてアンドロイドアプリを開発しております。 具体的には自宅にあるServerに地図情報が蓄積されており その情報をGoogleMapを使い地図上にプロットするといったものです。 いろいろなサイトを参考にEclipse付属のAndroidエミュレーターで ローカルにあるServerに接続し地図上に情報をプロットする事ができました! Eclipse(開発PC) 192.168.1.5 PostgresSV 192.168.1.10 そして、いよいよ実機のGalaxyS3へインストールして起動してみたのですが、 【なにかドライバを失敗させる変化が起こりました。どうぞこの例外を報告してください。】 と言うエラーを吐きデータを取得できません。 ちなみに、GalaxyS3をWi-FiにてローカルIPにしてもDoCoMo回線のグローバルIPにしても 同じエラーを吐き情報の取得ができません。 PostgresSVのポートはルーターで設定してグローバルからも通してあります。 そもそもこのjdbcはAndroidで利用する事ができないのでしょうか? 参考までに接続する部分のソースを載せます。 try{  Class.forName("org.postgresql.Driver").newInstance();  Connection con = DriverManager.getConnection("jdbc:postgresql://192.168.1.10/map_data","hogehoge","hogehoge");  Statement stmt = con.createStatement();  rs = stmt.executeQuery(stSql);    }catch(SQLException e){   Log.v("SQLException:",e.getMessage());    }catch (Exception e1) {        // TODO: handle exception  Log.v("DBエラー", e1.getMessage());       }finally{       } どなたかわかる方お願いします。

    • ベストアンサー
    • Java
  • PHPでPostgreSQLに接続できない。

    PHPでPostgreSQLに接続しようとすると、 エラーメッセージが出て接続できません。 コマンドプロンプトからの接続は可能です。 環境:PHP5、Apache2.2、PostgreSQL8.24 全て同じサーバにインストールしています。 ********************************************* コマンドプロンプト ********************************************* >psql -U postgres -h localhost test >Password for user postgres::testpass >Type: \copyright for distribution terms >\h for help with SQL commands >\? for help with psql commands >\g or terminate with semicolon to execute query >\q to quit > > >test=# ********************************************* ↑問題なく接続できます。 ********************************************* ********************************************* PHP ********************************************* <?php $con = pg_connect("host=localhost dbname=test user=postgres password=testpass"); ?> ********************************************* エラーメッセージ 12行目は「pg_connect」のところになります。 Fatal error: Call to undefined function pg_connect() in C:\Program Files\Apache…test.php on line 12 ********************************************* php.ini ファイルはextension=php_pgsql.dll をアンコメントしてあります。 宜しくお願い致します。

    • ベストアンサー
    • PHP