| | |
| | | import java.util.zip.Adler32; |
| | | import java.util.zip.CheckedInputStream; |
| | | |
| | | import org.opends.messages.Message; |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | import org.opends.server.admin.Configuration; |
| | | import org.opends.server.admin.server.ConfigurationChangeListener; |
| | | import org.opends.server.admin.std.meta.LocalDBIndexCfgDefn; |
| | |
| | | try |
| | | { |
| | | // Log an informational message about the number of entries. |
| | | Message message = NOTE_JEB_BACKEND_STARTED.get( |
| | | LocalizableMessage message = NOTE_JEB_BACKEND_STARTED.get( |
| | | cfg.getBackendId(), rootContainer.getEntryCount()); |
| | | logError(message); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, databaseException); |
| | | } |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_JEB_GET_ENTRY_COUNT_FAILED.get(databaseException.getMessage()); |
| | | throw new InitializationException( |
| | | message, databaseException); |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | Message message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get( |
| | | LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get( |
| | | String.valueOf(dn), String.valueOf(e)); |
| | | throw new InitializationException(message, e); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | Message message = ERR_JEB_DATABASE_EXCEPTION.get(e.getMessage()); |
| | | LocalizableMessage message = ERR_JEB_DATABASE_EXCEPTION.get(e.getMessage()); |
| | | logError(message); |
| | | } |
| | | |
| | |
| | | threadWriteCount.set(0); |
| | | |
| | | // Log an informational message. |
| | | Message message = NOTE_BACKEND_OFFLINE.get(cfg.getBackendId()); |
| | | LocalizableMessage message = NOTE_BACKEND_OFFLINE.get(cfg.getBackendId()); |
| | | logError(message); |
| | | } |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | LocalizableMessage message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | LocalizableMessage message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | LocalizableMessage message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | LocalizableMessage message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | LocalizableMessage message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | LocalizableMessage message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | { |
| | | // FIXME: No reason why we cannot implement a move between containers |
| | | // since the containers share the same database environment. |
| | | Message msg = WARN_JEB_FUNCTION_NOT_SUPPORTED.get(); |
| | | LocalizableMessage msg = WARN_JEB_FUNCTION_NOT_SUPPORTED.get(); |
| | | throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, msg); |
| | | } |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | LocalizableMessage message = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, ioe); |
| | | } |
| | | Message message = ERR_JEB_EXPORT_IO_ERROR.get(ioe.getMessage()); |
| | | LocalizableMessage message = ERR_JEB_EXPORT_IO_ERROR.get(ioe.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | // We can't do import while the backend is online. |
| | | if(!openRootContainer) |
| | | { |
| | | Message message = ERR_JEB_IMPORT_BACKEND_ONLINE.get(); |
| | | LocalizableMessage message = ERR_JEB_IMPORT_BACKEND_ONLINE.get(); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_EXECUTION_ERROR.get(execEx.getMessage()); |
| | | LocalizableMessage message = ERR_EXECUTION_ERROR.get(execEx.getMessage()); |
| | | throw new DirectoryException( |
| | | DirectoryServer.getServerErrorResultCode(), message); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, intEx); |
| | | } |
| | | Message message = ERR_INTERRUPTED_ERROR.get(intEx.getMessage()); |
| | | LocalizableMessage message = ERR_INTERRUPTED_ERROR.get(intEx.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | rootContainer.close(); |
| | | long finishTime = System.currentTimeMillis(); |
| | | long closeTime = (finishTime - startTime) / 1000; |
| | | Message msg = |
| | | LocalizableMessage msg = |
| | | NOTE_JEB_IMPORT_LDIF_ROOTCONTAINER_CLOSE.get(closeTime); |
| | | logError(msg); |
| | | rootContainer = null; |
| | |
| | | // Sync the environment to disk. |
| | | if (debugEnabled()) |
| | | { |
| | | Message message = NOTE_JEB_IMPORT_CLOSING_DATABASE.get(); |
| | | LocalizableMessage message = NOTE_JEB_IMPORT_CLOSING_DATABASE.get(); |
| | | TRACER.debugInfo(message.toString()); |
| | | } |
| | | } |
| | |
| | | */ |
| | | if(!openRootContainer && rebuildConfig.includesSystemIndex()) |
| | | { |
| | | Message message = ERR_JEB_REBUILD_BACKEND_ONLINE.get(); |
| | | LocalizableMessage message = ERR_JEB_REBUILD_BACKEND_ONLINE.get(); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, execEx); |
| | | } |
| | | Message message = ERR_EXECUTION_ERROR.get(execEx.getMessage()); |
| | | LocalizableMessage message = ERR_EXECUTION_ERROR.get(execEx.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, intEx); |
| | | } |
| | | Message message = ERR_INTERRUPTED_ERROR.get(intEx.getMessage()); |
| | | LocalizableMessage message = ERR_INTERRUPTED_ERROR.get(intEx.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message); |
| | | } |
| | |
| | | /** {@inheritDoc} */ |
| | | @Override() |
| | | public boolean isConfigurationAcceptable(Configuration configuration, |
| | | List<Message> unacceptableReasons) |
| | | List<LocalizableMessage> unacceptableReasons) |
| | | { |
| | | LocalDBBackendCfg config = (LocalDBBackendCfg) configuration; |
| | | return isConfigurationChangeAcceptable(config, unacceptableReasons); |
| | |
| | | @Override |
| | | public boolean isConfigurationChangeAcceptable( |
| | | LocalDBBackendCfg cfg, |
| | | List<Message> unacceptableReasons) |
| | | List<LocalizableMessage> unacceptableReasons) |
| | | { |
| | | // Make sure that the logging level value is acceptable. |
| | | try { |
| | | Level.parse(cfg.getDBLoggingLevel()); |
| | | } catch (Exception e) { |
| | | Message message = ERR_JEB_INVALID_LOGGING_LEVEL.get( |
| | | LocalizableMessage message = ERR_JEB_INVALID_LOGGING_LEVEL.get( |
| | | String.valueOf(cfg.getDBLoggingLevel()), |
| | | String.valueOf(cfg.dn())); |
| | | unacceptableReasons.add(message); |
| | |
| | | public ConfigChangeResult applyConfigurationChange(LocalDBBackendCfg newCfg) |
| | | { |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | ArrayList<Message> messages = new ArrayList<Message>(); |
| | | ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>(); |
| | | |
| | | |
| | | try |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | messages.add(Message.raw(stackTraceToSingleLineString(e))); |
| | | messages.add(LocalizableMessage.raw(stackTraceToSingleLineString(e))); |
| | | return new ConfigChangeResult( |
| | | DirectoryServer.getServerErrorResultCode(), false, messages); |
| | | } |
| | |
| | | */ |
| | | DirectoryException createDirectoryException(DatabaseException e) { |
| | | if (e instanceof EnvironmentFailureException && !rootContainer.isValid()) { |
| | | Message message = NOTE_BACKEND_ENVIRONMENT_UNUSABLE.get(getBackendID()); |
| | | LocalizableMessage message = NOTE_BACKEND_ENVIRONMENT_UNUSABLE.get(getBackendID()); |
| | | logError(message); |
| | | DirectoryServer.sendAlertNotification(DirectoryServer.getInstance(), |
| | | ALERT_TYPE_BACKEND_ENVIRONMENT_UNUSABLE, message); |
| | |
| | | if (jeMessage == null) { |
| | | jeMessage = stackTraceToSingleLineString(e); |
| | | } |
| | | Message message = ERR_JEB_DATABASE_EXCEPTION.get(jeMessage); |
| | | LocalizableMessage message = ERR_JEB_DATABASE_EXCEPTION.get(jeMessage); |
| | | return new DirectoryException( |
| | | DirectoryServer.getServerErrorResultCode(), message, e); |
| | | } |
| | |
| | | if (debugEnabled()) { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | Message message = ERR_JEB_OPEN_ENV_FAIL.get(e.getMessage()); |
| | | LocalizableMessage message = ERR_JEB_OPEN_ENV_FAIL.get(e.getMessage()); |
| | | throw new InitializationException(message, e); |
| | | } |
| | | } |
| | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void diskLowThresholdReached(DiskSpaceMonitor monitor) { |
| | | Message msg = ERR_JEB_DISK_LOW_THRESHOLD_REACHED.get( |
| | | LocalizableMessage msg = ERR_JEB_DISK_LOW_THRESHOLD_REACHED.get( |
| | | monitor.getDirectory().getPath(), cfg.getBackendId(), |
| | | monitor.getFreeSpace(), Math.max(monitor.getLowThreshold(), |
| | | monitor.getFullThreshold())); |
| | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void diskFullThresholdReached(DiskSpaceMonitor monitor) { |
| | | Message msg = ERR_JEB_DISK_FULL_THRESHOLD_REACHED.get( |
| | | LocalizableMessage msg = ERR_JEB_DISK_FULL_THRESHOLD_REACHED.get( |
| | | monitor.getDirectory().getPath(), cfg.getBackendId(), |
| | | monitor.getFreeSpace(), Math.max(monitor.getLowThreshold(), |
| | | monitor.getFullThreshold())); |
| | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void diskSpaceRestored(DiskSpaceMonitor monitor) { |
| | | Message msg = NOTE_JEB_DISK_SPACE_RESTORED.get(monitor.getFreeSpace(), |
| | | LocalizableMessage msg = NOTE_JEB_DISK_SPACE_RESTORED.get(monitor.getFreeSpace(), |
| | | monitor.getDirectory().getPath(), cfg.getBackendId(), |
| | | Math.max(monitor.getLowThreshold(), monitor.getFullThreshold())); |
| | | logError(msg); |