Вот код, который я использовал:Программа запускается из затмения может вставить данные в Монго DB локальной машины, но не в Монго DB удаленной машины
package testing;
import com.mongodb.*;
public class MongoTest {
public static void main(String args[])
{
try
{
MongoClient cli=new MongoClient("10.6.9.227",27017);
DB dtbs=cli.getDB("test");
System.out.println("Connection to DB successful");
DBCollection col=dtbs.getCollection("newcol");
BasicDBObject record=new BasicDBObject("name","student1").append("sem","6");
col.insert(record);
System.out.println("Successfully Inserted into collection");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}}
Этот код вставляет совершенно в ту же машину, из который запускается этой программой затмения (которая указывается при инициализации объекта cli 10.6.9.57).
Но, когда я пытаюсь сделать то же самое на удаленном компьютере в той же локальной сети (которая задается IP 10.6.9.227), это то, что отображается в консоли Eclipse:
Подключение к DB успешно Заканчивается после 10000 мс в ожидании сервера, который соответствует AnyServerSelector {}. Клиент вид состояния кластера является {тип = Неизвестно, серверы = [{адрес = 10.6.9.227: 28017, тип = Неизвестно, состояние = Подключение, исключение = {java.lang.NullPointerException}}]
Машина 10.6.9.57 работает на ОС Windows. Я запускаю программу Eclipse отсюда. Удаленная машина 10.6.9.227 работает на ОС Debian Squeeze.
Я проверил, чтобы убедиться, что необходимые порты открыты через netstat
команды в системе 227:
:~$ sudo netstat -lntup
>Active Internet connections (only servers)
>Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
>tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 848/portmap
>tcp 0 0 127.0.0.1:28017 0.0.0.0:* LISTEN 2421/mongod
>tcp 0 0 0.0.0.0:49396 0.0.0.0:* LISTEN 860/rpc.statd
>tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1566/sshd
>tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN 1163/beam.smp
>tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2421/mongod
>tcp6 0 0 :::22 :::* LISTEN 1566/sshd
>udp 0 0 0.0.0.0:54866 0.0.0.0:* 860/rpc.statd
>udp 0 0 0.0.0.0:612 0.0.0.0:* 860/rpc.statd
>udp 0 0 0.0.0.0:32870 0.0.0.0:* 1260/avahi-daemon:
>udp 0 0 0.0.0.0:5353 0.0.0.0:* 1260/avahi-daemon:
>udp 0 0 0.0.0.0:111 0.0.0.0:* 848/portmap
>udp 0 0 10.6.9.227:123 0.0.0.0:* 1610/ntpd
>udp 0 0 127.0.0.1:123 0.0.0.0:* 1610/ntpd
>udp 0 0 0.0.0.0:123 0.0.0.0:* 1610/ntpd
>udp6 0 0 :::5353 :::* 1260/avahi-daemon:
>udp6 0 0 :::123 :::* 1610/ntpd
>udp6 0 0 :::50061 :::* 1260/avahi-daemon:
Эти порты открыты только, и я также возможность вставлять в этой локальной машине из его собственной команды линия (через шпатлевки):
> db.newcol.insert({name:"firststudent"},{sem:"5"});
> db.newcol.find()
{ "_id" : ObjectId("5571366e1031fc034ac63013"), "name" : "firststudent" }
Кроме того, это то, что файл журнала Монго DB в/вар/журнал/MongoDB выглядит следующим образом:
Fri Jun 5 10:39:02 Mongo DB : starting : pid = 2421 port = 27017 dbpath = /var/lib/mongodb master = 0 slave = 0 64-bit
Fri Jun 5 10:39:02 db version v1.4.4, pdfile version 4.5
Fri Jun 5 10:39:02 git version: nogitversion
Fri Jun 5 10:39:02 sys info: Linux bobek-a0 2.6.32-trunk-amd64 #1 SMP Sun Jan 10 22:40:40 UTC 2010 x86_64 BOOST_LIB_VERSION=1_42
Fri Jun 5 10:39:02 waiting for connections on port 27017
Fri Jun 5 10:39:02 web admin interface listening on port 28017
Я просто не могу решить, почему программа java, запущенная из затмения машины, подключенной к той же локальной сети, не в состоянии это сделать. Я включил mongo-java-driver-2.13.0-rc1.jar. Я даже попытался остановить и перезапустить mongo db в удаленной машине и повторить этот процесс несколько раз. Но все еще не в состоянии вставить. Любая помощь?
Я на самом деле пытался не-установка старого версии и установил новую версию mongo DB. Теперь он работает. Спасибо за вашу помощь :) – SANJANA