@Nullable private Version getMongoVersion(DB adminDb) { final CommandResult buildInfoResult = adminDb.command("buildInfo"); if (buildInfoResult.ok()) { final BasicDBList versionArray = (BasicDBList) buildInfoResult.get("versionArray"); if (versionArray == null || versionArray.size() < 3) { LOG.debug("Couldn't retrieve MongoDB version"); return null; } final int majorVersion = (int) versionArray.get(0); final int minorVersion = (int) versionArray.get(1); final int patchVersion = (int) versionArray.get(2); return Version.forIntegers(majorVersion, minorVersion, patchVersion); } else { LOG.debug("Couldn't retrieve MongoDB buildInfo: {}", buildInfoResult.getErrorMessage()); return null; } }
private static BuildInfo createBuildInfo(DB adminDb) { final BuildInfo buildInfo; final CommandResult buildInfoResult = adminDb.command("buildInfo"); if (buildInfoResult.ok()) { buildInfo = BuildInfo.create( buildInfoResult.getString("version"), buildInfoResult.getString("gitVersion"), buildInfoResult.getString("sysInfo"), buildInfoResult.getString("loaderFlags"), buildInfoResult.getString("compilerFlags"), buildInfoResult.getString("allocator"), (List<Integer>) buildInfoResult.get("versionArray"), buildInfoResult.getString("javascriptEngine"), buildInfoResult.getInt("bits"), buildInfoResult.getBoolean("debug"), buildInfoResult.getLong("maxBsonObjectSize") ); } else { LOG.debug("Couldn't retrieve MongoDB buildInfo: {}", buildInfoResult.getErrorMessage()); buildInfo = null; } return buildInfo; }
); } else { LOG.debug("Couldn't retrieve MongoDB dbStats: {}", dbStatsResult.getErrorMessage()); dbStats = null; storageEngine); } else { LOG.debug("Couldn't retrieve MongoDB serverStatus: {}", serverStatusResult.getErrorMessage()); serverStatus = null;
LOG.debug("Couldn't retrieve MongoDB hostInfo: {}", hostInfoResult.getErrorMessage()); hostInfo = null;
logger.warn("serverStatus returns error: {}", cr.getErrorMessage()); return false;
public String getError() { return wr.getLastError().getErrorMessage(); }
public String getError() { return wr.getLastError().getErrorMessage(); }
public String getError() { return wr.getLastError().getErrorMessage(); }
protected void throwOnError(final WriteConcern wc, final WriteResult wr) { if (wc == null && wr.getLastConcern() == null) { final CommandResult cr = wr.getLastError(); if (cr != null && cr.getErrorMessage() != null && cr.getErrorMessage().length() != 0) { cr.throwOnError(); } } }
protected void throwOnError(WriteConcern wc, WriteResult wr) { if ( wc == null && wr.getLastConcern() == null) { CommandResult cr = wr.getLastError(); if (cr != null && cr.getErrorMessage() != null && cr.getErrorMessage().length() > 0) cr.throwOnError(); } } public <T> Key<T> save(String kind, T entity) {
/** * @param wc * @param wr */ protected void throwOnError(WriteConcern wc, WriteResult wr) { if (wc == null && wr.getLastConcern() == null) { CommandResult cr = wr.getLastError(); if (cr != null && cr.getErrorMessage() != null && cr.getErrorMessage().length() > 0) cr.throwOnError(); } }
private Optional<CommandResult> runDBCommand(String database, DBObject command) { DB db = client.getDB(database); CommandResult status; try { status = db.command(command); } catch (MongoException e) { LOG.warn("Command "+command+" on "+getServerAddress()+" failed", e); return Optional.absent(); } if (!status.ok()) { LOG.debug("Unexpected result of {} on {}: {}", new Object[]{command, getServerAddress(), status.getErrorMessage()}); return Optional.absent(); } return Optional.of(status); }
@Nullable private Version getMongoVersion(DB adminDb) { final CommandResult buildInfoResult = adminDb.command("buildInfo"); if (buildInfoResult.ok()) { final BasicDBList versionArray = (BasicDBList) buildInfoResult.get("versionArray"); if (versionArray == null || versionArray.size() < 3) { LOG.debug("Couldn't retrieve MongoDB version"); return null; } final int majorVersion = (int) versionArray.get(0); final int minorVersion = (int) versionArray.get(1); final int patchVersion = (int) versionArray.get(2); return Version.forIntegers(majorVersion, minorVersion, patchVersion); } else { LOG.debug("Couldn't retrieve MongoDB buildInfo: {}", buildInfoResult.getErrorMessage()); return null; } }
public static AggregationOutput aggregate(PersistenceContext context, MetaClass metadata, DBObject firstObject, DBObject... aggrObjects) { long start = System.currentTimeMillis(); String msg = "success"; DBCollection dbCollection = context.getDBCollection(metadata); AggregationOutput output = null; try { output = dbCollection.aggregate(firstObject, aggrObjects); if (!output.getCommandResult().ok()) { throw new CmsDalException(DalErrCodeEnum.AGGREGATION_FAILED, output.getCommandResult() .getErrorMessage()); } } catch (Throwable t) { msg = t.getMessage(); handleMongoException(t); } finally { DBObject followingOjbect = new BasicDBObject(); followingOjbect.put("following aggreate operations: ", aggrObjects); logMongoAction(context, "aggregate", start, dbCollection, firstObject, followingOjbect, null, null, msg); } return output; }
public Iterable<DBObject> mapReduce(String collectionName, String map, String reduce, DBObject query) throws OperatorException { MapReduceOutput _output = getCollection(collectionName).mapReduce(map, reduce, null, OutputType.INLINE, query); CommandResult _result = _output.getCommandResult(); if (!_result.ok()) { throw new OperatorException(_result.getErrorMessage()); } return _output.results(); }
@Override public int update(String statement, Object parameter) { logger.debug("Execute 'update' mongodb command. Statement '" + statement + "'."); UpdateConfig config = (UpdateConfig) configuration.getConfig(statement); if (config == null) { throw new MongoDaoException(statement, "Update statement id '" + statement + "' not found."); } String collection = config.getCollection(); NodeEntry query = config.getQuery(); NodeEntry action = config.getAction(); DB db = factory.getDataSource().getDB(); DBCollection coll = db.getCollection(collection); Map<String, Object> q = (Map<String, Object>) query.executorNode(configuration, parameter); Map<String, Object> a = (Map<String, Object>) action.executorNode(configuration, parameter); DBObject queryDbo = new BasicDBObject(q); logger.debug("Execute 'update' mongodb command. Query '" + queryDbo + "'."); DBObject actionDbo = (a == null) ? null : new BasicDBObject(a); logger.debug("Execute 'update' mongodb command. Action '" + actionDbo + "'."); WriteResult writeResult = coll.update(queryDbo, actionDbo, false, true, WriteConcern.SAFE); CommandResult commandResult = writeResult.getLastError(WriteConcern.SAFE); if (commandResult.getException() != null) { throw new MongoDaoException(statement, "Execute 'update' mongodb command has exception. Cause: " + commandResult.getErrorMessage()); } return writeResult.getN(); }
public Iterable<DBObject> mapReduce(String collectionName, String map, String reduce, String outputTarget, OutputType type, OrderBy order, int pageNumber, int pageSize, DBObject query) throws OperatorException { MapReduceOutput _output = getCollection(collectionName).mapReduce(map, reduce, outputTarget, type, query); CommandResult _result = _output.getCommandResult(); if (!_result.ok()) { throw new OperatorException(_result.getErrorMessage()); } DBCollection _collection = _output.getOutputCollection(); DBCursor _cursor = null; if (order != null) { _cursor = _collection.find().sort(order.toDBObject()); } else { _cursor = _collection.find(); } if (pageNumber > 0 && pageSize > 0) { _cursor.skip((pageNumber - 1) * pageSize).limit(pageSize); } List<DBObject> _results = new ArrayList<DBObject>(); for (Iterator<DBObject> _it = _cursor.iterator(); _it.hasNext();) { _results.add(_it.next()); } return _results; }
@Override public String insert(String statement, Object parameter) { logger.debug("Execute 'insert' mongodb command. Statement '" + statement + "'."); InsertConfig config = (InsertConfig) configuration.getConfig(statement); if (config == null) { throw new MongoDaoException(statement, "Insert statement id '" + statement + "' not found."); } String collection = config.getCollection(); NodeEntry document = config.getDocument(); Entry selectKey = config.getSelectKey(); DB db = factory.getDataSource().getDB(); DBCollection coll = db.getCollection(collection); Map<String, Object> doc = (Map<String, Object>) document.executorNode(configuration, parameter); DBObject docDbo = new BasicDBObject(doc); logger.debug("Execute 'insert' mongodb command. Doc '" + docDbo + "'."); WriteResult writeResult = coll.insert(docDbo, WriteConcern.SAFE); CommandResult commandResult = writeResult.getLastError(WriteConcern.SAFE); if (commandResult.getException() != null) { throw new MongoDaoException(statement, "Execute 'insert' mongodb command has exception. Cause: " + commandResult.getErrorMessage()); } String newId = docDbo.get("_id").toString(); logger.debug("Execute 'insert' mongodb command. ObjectId is '" + newId + "'."); if (selectKey != null) { helper.setSelectKey(selectKey, newId, parameter); } return newId; }
@Override public int delete(String statement, Object parameter) { logger.debug("Execute 'delete' mongodb command. Statement '" + statement + "'."); DeleteConfig config = (DeleteConfig) configuration.getConfig(statement); if (config == null) { throw new MongoDaoException(statement, "Delete statement id '" + statement + "' not found."); } String collection = config.getCollection(); NodeEntry query = config.getQuery(); DB db = factory.getDataSource().getDB(); DBCollection coll = db.getCollection(collection); Map<String, Object> q = (Map<String, Object>) query.executorNode(configuration, parameter); DBObject queryDbo = new BasicDBObject(q); logger.debug("Execute 'delete' mongodb command. Query '" + queryDbo + "'."); WriteResult writeResult = coll.remove(queryDbo, WriteConcern.SAFE); CommandResult commandResult = writeResult.getLastError(WriteConcern.SAFE); if (commandResult.getException() != null) { throw new MongoDaoException(statement, "Execute 'delete' mongodb command has exception. Cause: " + commandResult.getErrorMessage()); } return writeResult.getN(); }
private static BuildInfo createBuildInfo(DB adminDb) { final BuildInfo buildInfo; final CommandResult buildInfoResult = adminDb.command("buildInfo"); if (buildInfoResult.ok()) { buildInfo = BuildInfo.create( buildInfoResult.getString("version"), buildInfoResult.getString("gitVersion"), buildInfoResult.getString("sysInfo"), buildInfoResult.getString("loaderFlags"), buildInfoResult.getString("compilerFlags"), buildInfoResult.getString("allocator"), (List<Integer>) buildInfoResult.get("versionArray"), buildInfoResult.getString("javascriptEngine"), buildInfoResult.getInt("bits"), buildInfoResult.getBoolean("debug"), buildInfoResult.getLong("maxBsonObjectSize") ); } else { LOG.debug("Couldn't retrieve MongoDB buildInfo: {}", buildInfoResult.getErrorMessage()); buildInfo = null; } return buildInfo; }