Package com.jalios.jcms.db
Class DBEventLogManager
- java.lang.Object
-
- com.jalios.jcms.db.BasicDBListener
-
- com.jalios.jcms.db.DBEventLogManager
-
- All Implemented Interfaces:
DBConstants
,DBListener
,JcmsConstants
,PluginComponent
,AlarmListener
,JaliosConstants
,JPropertiesListener
public class DBEventLogManager extends BasicDBListener implements JPropertiesListener, AlarmListener, JcmsConstants
This class replays the hibernate events on all the other replicas.- Since:
- jcms-6.0.0
- Author:
- Olivier Dedieu
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DB_EVENT_LOG_ALARM_MGR
static java.lang.String
DB_EVENT_LOG_CONSUMER
static java.lang.String
DB_EVENT_LOG_TIMER
static java.lang.String
EXCLUDED_CLASSES
static java.lang.String
EXPIRATION_DELAY_PROP
static java.lang.String
EXPLICIT_URIDS
static java.lang.String
NOTIFICATION_DELAY_PROP
static java.lang.String
NOTIFICATION_ENABLED_PROP
static java.lang.String
NOTIFICATION_MAX_RESCHEDULE_PROP
static java.lang.String
PROCESS_COMMIT_BATCH_SIZE_PROP
static java.lang.String
PROCESS_MESSAGE_URL
static java.lang.String
QUERY_LIMIT_PROP
static java.lang.String
SCAN_FREQ_PROP
-
Fields inherited from interface com.jalios.jcms.db.DBConstants
ALL_CATEGORIES_SET_FIELD, ATTACH_WS_SET_FIELD, AUTH_GRP_SET_FIELD, AUTH_MBR_SET_FIELD, AUTHOR_ID_FIELD, CATEGORIES_SET_FIELD, CDATE_FIELD, CHANNEL_JCMSDB_PROP, CLASSIFICATION_LEVEL_FIELD, DBDATA_URID, EXTENDED_READ_RIGHTS, HAS_ATTACH_WS_FIELD, HAS_NO_READ_RIGHTS, HIBERNATE_MAPPING_ADATE, HIBERNATE_MAPPING_AUTHOR, HIBERNATE_MAPPING_CDATE, HIBERNATE_MAPPING_EDATE, HIBERNATE_MAPPING_HAS_ATTACH_WS, HIBERNATE_MAPPING_HASNOREADRIGHTS, HIBERNATE_MAPPING_MAININSTANCE_ID, HIBERNATE_MAPPING_MAJORVERSION, HIBERNATE_MAPPING_MDATE, HIBERNATE_MAPPING_MERGE_DATE, HIBERNATE_MAPPING_MERGE_ID, HIBERNATE_MAPPING_MINORVERSION, HIBERNATE_MAPPING_OPAUTHOR, HIBERNATE_MAPPING_PDATE, HIBERNATE_MAPPING_PSTATUS, HIBERNATE_MAPPING_READ_ACK, HIBERNATE_MAPPING_READERCOUNT, HIBERNATE_MAPPING_RESTRICTIVE_UPDATE_RIGHTS, HIBERNATE_MAPPING_TITLE, HIBERNATE_MAPPING_TRACKED, HIBERNATE_MAPPING_UDATE, HIBERNATE_MAPPING_VOTECOUNT, HIBERNATE_MAPPING_VOTESCORE, HIBERNATE_MAPPING_WORKFLOW_ID, HIBERNATE_MAPPING_WORKSPACE_ID, MAX_HIBERNATE_MAPPING_PUBLICATION, MDATE_FIELD, OPAUTHOR_ID_FIELD, PSTATUS_FIELD, ROW_ID_FIELD, SCROLL_FETCH_SIZE, WORKFLOW_ID_FIELD, WORKSPACE_ID_FIELD
-
Fields inherited from interface com.jalios.util.JaliosConstants
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
-
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, AJAX_MODE_ATTR, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, CLASS_PROPERTY, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, COUNTRY_SPRITE, CS_TYPOLOGY_ROOT_CAT_VID, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DATA_DIRECTORY, DEFAULT_PHOTO_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, GLYPH_ICON_PREFIX, ICON_ARCHIVE, ICON_ICON_PREFIX, ICON_LOCK, ICON_LOCK_STRONG, ICON_PREFIX_PROP, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, IS_IN_FRONT_OFFICE, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JCMS_TOASTR_COLLECTION, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LANG_SPRITE, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_CREATE_STR, OP_DEEP_COPY, OP_DEEP_COPY_STR, OP_DEEP_DELETE, OP_DEEP_DELETE_STR, OP_DELETE, OP_DELETE_STR, OP_MERGE, OP_MERGE_STR, OP_UPDATE, OP_UPDATE_STR, ORGANIZATION_ROOT_GROUP_PROP, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_PROP_PREFIX, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_PROP_PREFIX, PHOTO_LARGE_WIDTH, PHOTO_MINI, PHOTO_MINI_HEIGHT, PHOTO_MINI_PROP_PREFIX, PHOTO_MINI_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_PROP_PREFIX, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_PROP_PREFIX, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_PROP_PREFIX, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, RAW_CONTENT_ICON_PREFIX, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SECURITY_LOG_FILE, SESSION_AUTHORIZED_FILENAMES_SET, SPRITE_ICON_PREFIX, STATS_REPORT_DIR, STATUS_PROP, STORE_DIR, STORE_XML, SUCCESS_MSG, SVG_ICON_PREFIX, SVGINLINE_ICON_PREFIX, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TTCARD_MEDIA_HEIGHT, TTCARD_MEDIA_WIDTH, TYPES_ICON_ALT_PROP, TYPES_ICON_SUFFIX_PROP, TYPES_ICON_TITLE_PROP, TYPES_PREFIX_PROP, TYPES_THUMB_SUFFIX_PROP, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, UPLOAD_PERMISSION_COUNT_PROP_PREFIX, UPLOAD_PERMISSION_SIZE_PROP_PREFIX, URL_REGEXP, VID_LOGGED_MEMBER, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
deleteDBEventLog(java.lang.String source, java.lang.String target)
java.util.List<DBEventLogSummary>
getDBEventLogsSummary()
static DBEventLogManager
getInstance()
protected java.util.List<DBEventLog>
getNewDBEventLogList()
Deprecated.This method should not be used any more as it's limited in size, other db event log will be not read after this limit before full scanprotected org.hibernate.ScrollableResults
getNewDBEventLogScrollResult()
Returns all the DBEventLog not yet processed by this replica.java.util.Set<java.lang.String>
getReplicaUridSet()
void
handleAlarm(AlarmEntry entry)
Invoked when an alarm is triggered.void
onPostDelete(DBData data, org.hibernate.event.PostDeleteEvent event, boolean firstTime)
This method is called after a DBData has been deleted.void
onPostInsert(DBData data, org.hibernate.event.PostInsertEvent event, boolean firstTime)
This method is called after a DBData has been created.void
onPostUpdate(DBData data, org.hibernate.event.PostUpdateEvent event, boolean firstTime)
This method is called after a DBData has been updated.void
processNewDBEventLogs(java.lang.String sender)
void
propertiesChange(JProperties properties)
Invoked after properties have been modified in JCMS and save on disk.void
resetNotificationTimerThreadLocal()
-
Methods inherited from class com.jalios.jcms.db.BasicDBListener
getAdateFromState, getAuthorIdFromState, getCdateFromState, getDateFromState, getEdateFromState, getMdateFromState, getPdateFromState, getPrePstatus, getPrePstatus, getPstatusFromState, hasNoChange, hasNoChange, init, onPreUpdate
-
-
-
-
Field Detail
-
PROCESS_MESSAGE_URL
public static final java.lang.String PROCESS_MESSAGE_URL
- See Also:
- Constant Field Values
-
DB_EVENT_LOG_TIMER
public static final java.lang.String DB_EVENT_LOG_TIMER
- See Also:
- Constant Field Values
-
DB_EVENT_LOG_ALARM_MGR
public static final java.lang.String DB_EVENT_LOG_ALARM_MGR
- See Also:
- Constant Field Values
-
DB_EVENT_LOG_CONSUMER
public static final java.lang.String DB_EVENT_LOG_CONSUMER
- See Also:
- Constant Field Values
-
SCAN_FREQ_PROP
public static final java.lang.String SCAN_FREQ_PROP
- See Also:
- Constant Field Values
-
QUERY_LIMIT_PROP
public static final java.lang.String QUERY_LIMIT_PROP
- See Also:
- Constant Field Values
-
NOTIFICATION_ENABLED_PROP
public static final java.lang.String NOTIFICATION_ENABLED_PROP
- See Also:
- Constant Field Values
-
NOTIFICATION_DELAY_PROP
public static final java.lang.String NOTIFICATION_DELAY_PROP
- See Also:
- Constant Field Values
-
NOTIFICATION_MAX_RESCHEDULE_PROP
public static final java.lang.String NOTIFICATION_MAX_RESCHEDULE_PROP
- See Also:
- Constant Field Values
-
EXCLUDED_CLASSES
public static final java.lang.String EXCLUDED_CLASSES
- See Also:
- Constant Field Values
-
EXPLICIT_URIDS
public static final java.lang.String EXPLICIT_URIDS
- See Also:
- Constant Field Values
-
PROCESS_COMMIT_BATCH_SIZE_PROP
public static final java.lang.String PROCESS_COMMIT_BATCH_SIZE_PROP
- See Also:
- Constant Field Values
-
EXPIRATION_DELAY_PROP
public static final java.lang.String EXPIRATION_DELAY_PROP
- See Also:
- Constant Field Values
-
-
Method Detail
-
getInstance
public static DBEventLogManager getInstance()
-
propertiesChange
public void propertiesChange(JProperties properties)
Description copied from interface:JPropertiesListener
Invoked after properties have been modified in JCMS and save on disk.You cannot alter the value received in parameters.
Note that properties parameter may be null, a limited set of site properties, or all site properties.
To check that a property has been modified, reload the "current" property instead using
channel.getProperties
orchannel.getProperty
.- Specified by:
propertiesChange
in interfaceJPropertiesListener
- Parameters:
properties
- the properties which have been submitted to change
-
onPostInsert
public void onPostInsert(DBData data, org.hibernate.event.PostInsertEvent event, boolean firstTime)
Description copied from interface:DBListener
This method is called after a DBData has been created.- Specified by:
onPostInsert
in interfaceDBListener
- Overrides:
onPostInsert
in classBasicDBListener
- Parameters:
data
- the data.event
- the event.firstTime
- true on the JSync replica on which the operation took place and false on the other replicas.- See Also:
DBListener.onPostInsert(DBData, PostInsertEvent, boolean)
-
onPostUpdate
public void onPostUpdate(DBData data, org.hibernate.event.PostUpdateEvent event, boolean firstTime)
Description copied from interface:DBListener
This method is called after a DBData has been updated.- Specified by:
onPostUpdate
in interfaceDBListener
- Overrides:
onPostUpdate
in classBasicDBListener
- Parameters:
data
- the data.event
- the event.firstTime
- true on the JSync replica on which the operation took place and false on the other replicas.- See Also:
DBListener.onPostUpdate(DBData, PostUpdateEvent, boolean)
-
onPostDelete
public void onPostDelete(DBData data, org.hibernate.event.PostDeleteEvent event, boolean firstTime)
Description copied from interface:DBListener
This method is called after a DBData has been deleted.- Specified by:
onPostDelete
in interfaceDBListener
- Overrides:
onPostDelete
in classBasicDBListener
- Parameters:
data
- the deleted DBData. WARNING! In a JSync Cluster, when firstTime is false, this data will be null. In this case, to get information about this deleted data, you must use the event and in particular event.getId(), which returns the JPlatform ID of the data, and event.getDeletedState() which returns the attributes of the data.event
- the eventfirstTime
- true on the JSync replica on which the operation took place and false on the other replicas.- See Also:
DBListener.onPostDelete(DBData, PostDeleteEvent, boolean)
-
getReplicaUridSet
public java.util.Set<java.lang.String> getReplicaUridSet()
-
handleAlarm
public void handleAlarm(AlarmEntry entry)
Description copied from interface:AlarmListener
Invoked when an alarm is triggered.- Specified by:
handleAlarm
in interfaceAlarmListener
- Parameters:
entry
- the AlarmEntry which has been triggered.
-
processNewDBEventLogs
public void processNewDBEventLogs(java.lang.String sender)
-
getNewDBEventLogList
@Deprecated protected java.util.List<DBEventLog> getNewDBEventLogList()
Deprecated.This method should not be used any more as it's limited in size, other db event log will be not read after this limit before full scanReturns all the DBEventLog not yet processed by this replica.- Returns:
- all the DBEventLog not yet processed by this replica (never return null). (size limited by
QUERY_LIMIT_PROP
) - Since:
- jcms-6.0.0
-
getDBEventLogsSummary
public java.util.List<DBEventLogSummary> getDBEventLogsSummary()
-
deleteDBEventLog
public boolean deleteDBEventLog(java.lang.String source, java.lang.String target)
-
getNewDBEventLogScrollResult
protected org.hibernate.ScrollableResults getNewDBEventLogScrollResult()
Returns all the DBEventLog not yet processed by this replica.- Returns:
- all the DBEventLog not yet processed by this replica (never return null).
- Since:
- jcms-10.0.8
-
resetNotificationTimerThreadLocal
public void resetNotificationTimerThreadLocal()
-
-