Mongo Java APIを使用して、次のようにcurrentOp()コマンドを実行できます:
_MongoClient mongoClient = null;
mongoClient = new MongoClient( "127.0.0.1", 27017);
db = mongoClient.getDB("admin");
db.command("currentOp");
_
ただし、現在の操作の詳細のみを取得します。アイドル接続の詳細も取得する必要があります。
これを参考に
https://docs.mongodb.com/v3.0/reference/method/db.currentOp/#currentop-examples
行動
Trueをdb.currentOp()に渡すと、メソッドは、アイドル接続の操作やシステム操作など、すべての操作に関する情報を返します。
db.currentOp(true)trueを渡すことは、{'$ all':true}のクエリドキュメントを渡すことと同じです。
クエリドキュメントをdb.currentOp()に渡すと、出力はクエリに一致する現在の操作の情報のみを返します。出力フィールドに対してクエリを実行できます。例を参照してください。
{'$ all':true}クエリドキュメントを指定して、アイドル接続の操作やシステム操作など、進行中のすべての操作に関する情報を返すこともできます。クエリドキュメントに '$ all':trueと他のクエリ条件が含まれている場合、 '$ all':trueのみが適用されます。
このコマンドdb.command("currentOp(true)");
を使用しているときに、次のような例外が発生します。
"ok":0.0、 "errmsg": "そのようなコマンドはありません: 'currentOp(true)'、bad cmd: '{currentOp(true):true}'"、 "code":59}
私は MongoDBチーム に、それが金曜日とほぼ休日であることを簡単に確認するように依頼しました。ここに彼らの提案があります、それが役に立てば幸いです:
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("192.168.88.11");
MongoDatabase database = mongoClient.getDatabase("admin");
Document currentOpResults = database.runCommand(new Document("currentOp", 1)).append("$all", true);
System.out.println(currentOpResults.toJson());
}
出力を提供します:
{ "inprog" : [{ "desc" : "conn1055", "threadId" : "139685894772480",
"connectionId" : 1055, "client" : "192.168.88.102:57119", "active" : true,
"opid" : 7664, "secs_running" : 0, "microsecs_running" : { "$numberLong" :
"31" }, "op" : "command", "ns" : "admin.$cmd", "query" : { "currentOp" : 1
}, "numYields" : 0, "locks" : { }, "waitingForLock" : false, "lockStats" : {
} }], "ok" : 1.0, "$all" : true }
コードスニペット:
/*
* using latest driver available at
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongo-Java-driver/3.6.0/
* mongodb 3.4.1
*/
package javaapplication1;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class JavaApplication1 {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient(“servername.domain.com”);
MongoDatabase database = mongoClient.getDatabase(“admin”);
Document currentOpResults = database.runCommand(new Document(“currentOp”, 1)).append(“$all”, true);
System.out.println(currentOpResults.toJson());
}
}