protected void initializeEventListeners() { for (Iterator i = this.eventProcessor.getGateway().getListeners().iterator(); i.hasNext(); ) { registerGatewayEventListener((GatewayEventListener) i.next()); } }
@Override public String toString() { StringBuffer buffer = new StringBuffer(); GatewayQueueAttributes gqa = getGateway().getQueueAttributesNoSync(); buffer .append("GatewayEventProcessor[") .append("gatewayId=") .append(getGateway().getId()) .append(";gatewayHubId=") .append(getGateway().getGatewayHubId()); if (gqa.getDiskStoreName()!=null) { buffer.append(";diskStoreName=") .append(gqa.getDiskStoreName()); } else { buffer.append(";overflowDirectory=") .append(gqa.getOverflowDirectory()); } buffer .append(";batchSize=") .append(gqa.getBatchSize()) .append(";batchTimeInterval=") .append(gqa.getBatchTimeInterval()) .append(";batchConflation=") .append(gqa.getBatchConflation()) .append(";enablePersistence=") .append(gqa.getEnablePersistence()) .append("]"); return buffer.toString(); }
connection = this.eventProcessor.getGateway().getProxy().acquireConnection(); if (this.failedConnectCount == 1) { this.logger.warning(LocalizedStrings.GatewayEventRemoteDispatcher_0_COULD_NOT_CONNECT_1, new Object[] {this.eventProcessor.getGateway(), ex.getMessage()}); if (this.failedConnectCount == 1) { this.logger.warning(LocalizedStrings.GatewayEventRemoteDispatcher_0_COULD_NOT_CONNECT_1, new Object[] {this.eventProcessor.getGateway(), ex.getMessage()}); List servers = this.eventProcessor.getGateway().getProxy().getCurrentServers(); String ioMsg = null; if (servers.size() == 0) { this.logger.warning(LocalizedStrings.GatewayEventRemoteDispatcher__0___COULD_NOT_CONNECT, this.eventProcessor.getGateway()); throw new GatewayException(LocalizedStrings.GatewayEventRemoteDispatcher__0___COULD_NOT_CONNECT.toLocalizedString(this.eventProcessor.getGateway()), ex); Object[] logArgs = new Object[] {this.eventProcessor.getGateway(), connection, Integer.valueOf(this.failedConnectCount)}; this.logger.info(LocalizedStrings.GatewayEventRemoteDispatcher_0_USING_1_AFTER_2_FAILED_CONNECT_ATTEMPTS, logArgs); this.failedConnectCount = 0; } else { Object[] logArgs = new Object[] {this.eventProcessor.getGateway(), connection }; this.logger.info(LocalizedStrings.GatewayEventRemoteDispatcher_0_USING_1, logArgs);
private void processQueue() { GatewayQueueAttributes gqa = getGateway().getQueueAttributes(); final int batchSize = gqa.getBatchSize(); final int batchTimeInterval = gqa.getBatchTimeInterval(); final int alertThreshold = gqa.getAlertThreshold(); final GatewayStats statistics = getGateway().getStatistics(); List events = null; for (;;) {
GatewayStats statistics = this.eventProcessor.getGateway().getStatistics(); boolean success = false; try { if (this.eventProcessor.getGateway().getProxy().isDestroyed()) {
private void basicHandleSecondaryEvent(final GatewayEventImpl gatewayEvent) { GatewayStats statistics = getGateway().getStatistics();
GatewayStats statistics = getGateway().getStatistics();
if (!getGateway().getPrimary()) { if (!waitForPrimary()) { return; if (!getGateway().getPrimary()) { getLogger().warning(LocalizedStrings. GatewayImpl_ABOUT_TO_PROCESS_THE_MESSAGE_QUEUE_BUT_NOT_THE_PRIMARY);
if (getGateway().getPrimary()) { int numberOfPeeks = 0; try {
ServerProxy sp = new ServerProxy(this.eventProcessor.getGateway().getProxy()); sp.dispatchBatch(connection, events, batchId, this.eventProcessor.getGateway().getEarlyAck());
GatewayStats statistics = getGateway().getStatistics(); if (getLogger().fineEnabled()) { getLogger().fine(getGateway() + ": Queueing event (" + (statistics.getEventsQueued() + 1) + "): " + gatewayEvent); getLogger().fine(getGateway() + ": Queued event (" + (statistics.getEventsQueued()) + "): " + gatewayEvent); getLogger().warning( LocalizedStrings.GatewayImpl_0_THE_EVENT_QUEUE_SIZE_HAS_REACHED_THE_THRESHOLD_1, new Object[] {getGateway(), Integer.valueOf(QUEUE_SIZE_THRESHOLD)}); this._eventQueueSizeWarning = true;
.append(getGateway().getGatewayHubId()) .append('_') .append(getGateway().getId()) .append("_EVENT_QUEUE"); String regionName = regionNameBuffer.toString(); if (!getGateway().getPrimary()) { listener = new SecondaryGatewayListener(this); initializeListenerExecutor(); queue = new SingleWriteSingleReadRegionQueue(getGateway().getCache(), regionName, getGateway().getQueueAttributes(), listener, getGateway().getStatistics());
getGateway().waitToBecomePrimary();
boolean isPrimary = getGateway().getPrimary(); if(!isPrimary) { if (getGateway().getPrimary()) { isPrimary = true;
/** * Dispatches a batch of messages to all registered <code>GatewayEventListener</code>s. * @param events The <code>List</code> of events to send * @param removeFromQueueOnException Unused. * * @return whether the batch of messages was successfully processed */ public boolean dispatchBatch(List events, boolean removeFromQueueOnException) { GatewayStats statistics = this.eventProcessor.getGateway().getStatistics(); boolean success = false; try { // Send the batch to the corresponding Gateway long start = statistics.startTime(); success = dispatchBatch(events); statistics.endBatch(start, events.size()); } catch (GatewayException e) { // Do nothing in this case. The exception has already been logged. } catch (CancelException e) { this.eventProcessor.setIsStopped(true); throw e; } catch (Exception e) { this.logger.severe(LocalizedStrings.GatewayEventCallbackDispatcher_STOPPING_THE_PROCESSOR_BECAUSE_THE_FOLLOWING_EXCEPTION_OCCURRED_WHILE_PROCESSING_A_BATCH, e); this.eventProcessor.setIsStopped(true); } return success; }
/** * Just remove the event from the unprocessed events map if it is present. * This method added to fix bug 37603 */ protected void basicHandlePrimaryDestroy(final GatewayEventImpl gatewayEvent) { if (getPrimary()) { // no need to do anything if we have become the primary return; } GatewayStats statistics = getGateway().getStatistics(); // Get the event from the map synchronized (unprocessedEventsLock) { if (this.unprocessedEvents == null) return; // now we can safely use the unprocessedEvents field Object v = this.unprocessedEvents.remove(gatewayEvent.getEventId()); if (v != null) { statistics.incUnprocessedEventsRemovedByPrimary(); } } }
private void destroyQueuePersistenceFiles() { //Destroy a files of a persistent region ((SingleWriteSingleReadRegionQueue)this._eventQueue).destroyPersistentFiles(getGateway().getCache()); }
void destroyConnection() { Connection con = this.connection; if (con != null) { if (!con.isDestroyed()) { con.destroy(); this.eventProcessor.getGateway().getProxy().returnConnection(con); } // Reset the connection so the next time through a new one will be // obtained this.connection = null; } }
protected GatewayEventDispatcher initializeEventDispatcher() { GatewayEventDispatcher dispatcher = null; if (getGateway().hasEndpoints()) { dispatcher = new GatewayEventRemoteDispatcher(this); } else { dispatcher = new GatewayEventCallbackDispatcher(this); } return dispatcher; }
/** * Returns this processor's <code>LogWriterImpl</code>. * @return this processor's <code>LogWriterImpl</code> */ public LogWriterI18n getLogger() { return getGateway()._logger; }