0

MongoDB バージョン 2.0.1 に問題があります。32ビットのUbuntuマシンにインストールしました。コマンド プロンプトからは接続できますが、Java コードからは接続できません。この同じコードは、古い MongoDB バージョンで使用されていました。次の例外が発生します。

    Caused by: com.mongodb.MongoInternalException: DBPort.findOne failed
       at com.mongodb.DBPort.findOne(DBPort.java:153)
       at com.mongodb.DBPort.runCommand(DBPort.java:159)
       at com.mongodb.DBTCPConnector.testMaster(DBTCPConnector.java:369)
       at com.mongodb.Mongo.<init>(Mongo.java:140)
       at
com..bean.MongoCollectionPoolBean.init(MongoCollectionPoolBean.java:
42)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
57)
       at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:
1544)
       at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:
1485)
       at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1417)
       ... 24 more
        Caused by: java.io.IOException: couldn't connect to
    [domU-12-31-39-0B-26-01/67.265.65.132:27017]
    bc:java.net.ConnectException: Connection timed out
           at com.mongodb.DBPort._open(DBPort.java:205)
           at com.mongodb.DBPort.go(DBPort.java:85)
           at com.mongodb.DBPort.findOne(DBPort.java:145)
           ... 35 more

ローカル システム (Mac Lion 64 ビット) で同じ問題を再現しようとすると、問題なく動作します。サーバーログを見ると、ローカルシステムに次のように表示されます。

[clientcursormon] メモリ (MB) res:14 virt:2434 マップ:0

およびUbuntu(機能していない場所)

[clientcursormon] メモリ (MB) res:14 virt:86 マップ:0

4

1 に答える 1

0

アプリケーションが同じボックスでmongodbに接続している場合は、127.0.0.1を使用して、AmazonインスタンスがIPアドレスを変更したときに壊れないようにします。一般に、/ etc/hostsまたはdnsを介してIPを指すホスト名を使用することをお勧めします。それでも機能しない場合は、ローカル端末から「telnetlocalhost27017」を実行できることを確認してください。接続できない場合は、mongodbがそのポートで実行されていないか、ファイアウォールがあります。

于 2011-12-06T00:20:39.630 に答える