forked from mongodb/mongo-java-driver
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReplSetTest.java
More file actions
103 lines (88 loc) · 2.97 KB
/
ReplSetTest.java
File metadata and controls
103 lines (88 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
* Copyright (c) 2008-2014 MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// ReplSetTest.java
package com.mongodb;
import java.util.ArrayList;
import java.util.List;
public class ReplSetTest {
static void _sleep()
throws InterruptedException {
//Thread.sleep( 500 );
}
static class R extends Thread {
@SuppressWarnings("deprecation")
R( ServerAddress a ){
_a = a;
_mongo = new MongoClient(a);
_db = _mongo.getDB( "test" );
_coll = _db.getCollection( "foo" );
_coll.slaveOk();
}
public void run(){
while ( true ){
try {
_sleep();
_coll.findOne();
}
catch ( NullPointerException n ){
n.printStackTrace();
}
catch ( Exception e ){
System.out.println( _a + "\t" + e );
}
}
}
final ServerAddress _a;
final Mongo _mongo;
final DB _db;
final DBCollection _coll;
}
@SuppressWarnings("deprecation")
public static void main( String args[] )
throws Exception {
boolean rs = true;
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
if ( rs ){
addrs.add( new ServerAddress( "localhost" , 27018 ) );
addrs.add( new ServerAddress( "localhost" , 27019 ) );
addrs.add( new ServerAddress( "localhost" , 27020 ) );
addrs.add( new ServerAddress( "localhost" , 27021 ) );
}
Mongo m = rs ? new MongoClient( addrs ) : new MongoClient();
DB db = m.getDB( "test" );
DBCollection c = db.getCollection( "foo" );
c.drop();
c.insert( new BasicDBObject( "_id" , 17 ) );
c.slaveOk();
for ( ServerAddress a : addrs ){
new R(a).start();
}
while ( true ){
_sleep();
try {
DBObject x = c.findOne(new BasicDBObject( "_id", 17 ), null);
System.out.println( x );
Integer n = (Integer) x.get( "x" );
if (n != null && n >= 150 )
break;
c.update( new BasicDBObject( "_id", 17 ), new BasicDBObject( "$inc", new BasicDBObject( "x", 1 ) ) );
}
catch ( Exception e ){
e.printStackTrace();
}
}
}
}