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