本文整理了Java中io.aeron.Aeron.countersReader()
方法的一些代码示例,展示了Aeron.countersReader()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Aeron.countersReader()
方法的具体详情如下:
包路径:io.aeron.Aeron
类名称:Aeron
方法名:countersReader
[英]Get the CountersReader for the Aeron media driver counters.
[中]获取Aeron媒体驱动程序计数器的计数器读取器。
代码示例来源:origin: real-logic/aeron
/**
* Print out the values from {@link #countersReader()} which can be useful for debugging.
*
* @param out to where the counters get printed.
*/
public void printCounters(final PrintStream out)
{
final CountersReader counters = countersReader();
counters.forEach((value, id, label) -> out.format("%3d: %,20d - %s%n", id, value, label));
}
代码示例来源:origin: real-logic/aeron
long logRecordingId()
{
if (!recoveryPlan.logs.isEmpty())
{
return recoveryPlan.logs.get(0).recordingId;
}
return RecordingPos.getRecordingId(aeron.countersReader(), appendedPosition.counterId());
}
代码示例来源:origin: real-logic/aeron
private void awaitRecordingComplete(final long position)
{
final CountersReader counters = aeron.countersReader();
final int counterId = RecordingPos.findCounterIdBySession(counters, publicationSessionId);
while (counters.getCounterValue(counterId) < position)
{
Thread.yield();
}
}
代码示例来源:origin: real-logic/aeron
private void createAppendPosition(final int logSessionId)
{
final CountersReader counters = aeron.countersReader();
final int recordingCounterId = awaitRecordingCounter(counters, logSessionId);
appendedPosition = new ReadableCounter(counters, recordingCounterId);
}
代码示例来源:origin: real-logic/aeron
public static void main(final String[] args)
{
if (args.length != 1)
{
System.out.format("Usage: SetControllableIdleStrategy <n>");
System.exit(0);
}
try (Aeron aeron = Aeron.connect())
{
final CountersReader countersReader = aeron.countersReader();
final StatusIndicator statusIndicator = StatusUtil.controllableIdleStrategy(countersReader);
if (null != statusIndicator)
{
final int status = Integer.parseInt(args[0]);
statusIndicator.setOrdered(status);
System.out.println("Set ControllableIdleStrategy status to " + status);
}
else
{
System.out.println("Could not find ControllableIdleStrategy status.");
}
}
}
}
代码示例来源:origin: real-logic/aeron
@SuppressWarnings("unused")
void onReplayNewLeadershipTermEvent(
final long leadershipTermId,
final long logPosition,
final long timestamp,
final int leaderMemberId,
final int logSessionId)
{
clusterTimeMs(timestamp);
this.leadershipTermId = leadershipTermId;
if (null != election && null != appendedPosition)
{
final long recordingId = RecordingPos.getRecordingId(aeron.countersReader(), appendedPosition.counterId());
election.onReplayNewLeadershipTermEvent(recordingId, leadershipTermId, logPosition, cachedTimeMs);
}
}
代码示例来源:origin: real-logic/aeron
final CountersReader counters = aeron.countersReader();
final int counterId = RecordingPos.findCounterIdBySession(counters, publication.sessionId());
代码示例来源:origin: real-logic/aeron
@Test
public void shouldCatchErrorOnAddressAlreadyInUseForSubscriptions()
{
final Subscription subscriptionA = clientA.addSubscription(URI, STREAM_ID);
while (subscriptionA.channelStatus() == ChannelEndpointStatus.INITIALIZING)
{
SystemTest.checkInterruptedStatus();
Thread.yield();
}
assertThat(subscriptionA.channelStatus(), is(ChannelEndpointStatus.ACTIVE));
final Subscription subscriptionB = clientB.addSubscription(URI, STREAM_ID);
final ArgumentCaptor<Throwable> captor = ArgumentCaptor.forClass(Throwable.class);
verify(errorHandlerClientB, timeout(5000)).onError(captor.capture());
assertThat(captor.getValue(), instanceOf(ChannelEndpointException.class));
final ChannelEndpointException channelEndpointException = (ChannelEndpointException)captor.getValue();
final long status = clientB.countersReader().getCounterValue(channelEndpointException.statusIndicatorId());
assertThat(status, is(ChannelEndpointStatus.ERRORED));
assertThat(errorCounter.get(), greaterThan(0));
assertThat(subscriptionB.channelStatusId(), is(channelEndpointException.statusIndicatorId()));
assertThat(subscriptionA.channelStatus(), is(ChannelEndpointStatus.ACTIVE));
}
代码示例来源:origin: real-logic/aeron
@Test
public void shouldCatchErrorOnAddressAlreadyInUseForPublications()
{
final Publication publicationA = clientA.addPublication(URI_WITH_INTERFACE_PORT, STREAM_ID);
while (publicationA.channelStatus() == ChannelEndpointStatus.INITIALIZING)
{
SystemTest.checkInterruptedStatus();
Thread.yield();
}
assertThat(publicationA.channelStatus(), is(ChannelEndpointStatus.ACTIVE));
final Publication publicationB = clientB.addPublication(URI_WITH_INTERFACE_PORT, STREAM_ID);
final ArgumentCaptor<Throwable> captor = ArgumentCaptor.forClass(Throwable.class);
verify(errorHandlerClientB, timeout(5000)).onError(captor.capture());
assertThat(captor.getValue(), instanceOf(ChannelEndpointException.class));
final ChannelEndpointException channelEndpointException = (ChannelEndpointException)captor.getValue();
final long status = clientB.countersReader().getCounterValue(channelEndpointException.statusIndicatorId());
assertThat(status, is(ChannelEndpointStatus.ERRORED));
assertThat(errorCounter.get(), greaterThan(0));
assertThat(publicationB.channelStatusId(), is(channelEndpointException.statusIndicatorId()));
assertTrue(publicationB.isClosed());
assertThat(publicationA.channelStatus(), is(ChannelEndpointStatus.ACTIVE));
}
代码示例来源:origin: real-logic/aeron
private AtomicCounter getControlToggle(final int index)
{
final ClusteredMediaDriver driver = clusteredMediaDrivers[index];
final CountersReader countersReader = driver.consensusModule().context().aeron().countersReader();
return ClusterControl.findControlToggle(countersReader);
}
代码示例来源:origin: real-logic/aeron
public void onStart()
{
final CountersReader counters = aeron.countersReader();
roleCounter = awaitClusterRoleCounter(counters);
heartbeatCounter = awaitHeartbeatCounter(counters);
commitPosition = awaitCommitPositionCounter(counters);
service.onStart(this);
isServiceActive = true;
final int recoveryCounterId = awaitRecoveryCounter(counters);
heartbeatCounter.setOrdered(epochClock.time());
checkForSnapshot(counters, recoveryCounterId);
checkForReplay(counters, recoveryCounterId);
}
代码示例来源:origin: real-logic/aeron
@Test(timeout = 10_000)
public void shouldRestartServiceFromEmptySnapshot() throws Exception
{
final AtomicLong serviceMsgCounter = new AtomicLong(0);
launchService(serviceMsgCounter);
connectClient();
final CountersReader counters = container.context().aeron().countersReader();
final AtomicCounter controlToggle = ClusterControl.findControlToggle(counters);
assertNotNull(controlToggle);
assertTrue(ClusterControl.ToggleState.SNAPSHOT.toggle(controlToggle));
while (snapshotCount.get() == 0)
{
TestUtil.checkInterruptedStatus();
Thread.sleep(1);
}
forceCloseForRestart();
serviceState.set(null);
launchClusteredMediaDriver(false);
launchService(serviceMsgCounter);
connectClient();
while (null == serviceState.get())
{
TestUtil.checkInterruptedStatus();
Thread.yield();
}
assertThat(serviceState.get(), is("0"));
}
代码示例来源:origin: real-logic/aeron
final CountersReader counters = aeronCluster.context().aeron().countersReader();
final AtomicCounter controlToggle = ClusterControl.findControlToggle(counters);
assertNotNull(controlToggle);
代码示例来源:origin: real-logic/aeron
@Test(timeout = 10_000)
public void shouldTakeMultipleSnapshots() throws Exception
{
final AtomicLong serviceMsgCounter = new AtomicLong(0);
launchService(serviceMsgCounter);
connectClient();
final CountersReader counters = aeronCluster.context().aeron().countersReader();
final AtomicCounter controlToggle = ClusterControl.findControlToggle(counters);
assertNotNull(controlToggle);
for (int i = 0; i < 3; i++)
{
assertTrue(ClusterControl.ToggleState.SNAPSHOT.toggle(controlToggle));
while (controlToggle.get() != ClusterControl.ToggleState.NEUTRAL.code())
{
TestUtil.checkInterruptedStatus();
Thread.sleep(1);
}
}
assertThat(snapshotCount.get(), is(3L));
}
代码示例来源:origin: real-logic/aeron
private void takeSnapshot(final int index)
{
final ClusteredMediaDriver driver = clusteredMediaDrivers[index];
final CountersReader countersReader = driver.consensusModule().context().aeron().countersReader();
final AtomicCounter controlToggle = ClusterControl.findControlToggle(countersReader);
assertNotNull(controlToggle);
assertTrue(ClusterControl.ToggleState.SNAPSHOT.toggle(controlToggle));
}
代码示例来源:origin: real-logic/aeron
void prepareForNewLeadership(final long logPosition)
long recordingId = RecordingPos.getRecordingId(aeron.countersReader(), appendedPosition.counterId());
if (RecordingPos.NULL_RECORDING_ID == recordingId)
代码示例来源:origin: real-logic/aeron
private long onTakeSnapshot(final long logPosition, final long leadershipTermId)
{
final long recordingId;
try (AeronArchive archive = AeronArchive.connect(archiveCtx);
Publication publication = aeron.addExclusivePublication(ctx.snapshotChannel(), ctx.snapshotStreamId()))
{
final String channel = ChannelUri.addSessionId(ctx.snapshotChannel(), publication.sessionId());
final long subscriptionId = archive.startRecording(channel, ctx.snapshotStreamId(), LOCAL);
try
{
final CountersReader counters = aeron.countersReader();
final int counterId = awaitRecordingCounter(publication.sessionId(), counters);
recordingId = RecordingPos.getRecordingId(counters, counterId);
snapshotState(publication, logPosition, leadershipTermId);
service.onTakeSnapshot(publication);
awaitRecordingComplete(recordingId, publication.position(), counters, counterId, archive);
}
finally
{
archive.stopRecording(subscriptionId);
}
}
return recordingId;
}
代码示例来源:origin: real-logic/aeron
Publication publication = aeronArchive.addRecordedPublication(RECORDING_CHANNEL, RECORDING_STREAM_ID))
final CountersReader counters = aeron.countersReader();
final int counterId = getRecordingCounterId(publication.sessionId(), counters);
recordingId = RecordingPos.getRecordingId(counters, counterId);
代码示例来源:origin: real-logic/aeron
try
final CountersReader counters = aeron.countersReader();
final int counterId = awaitRecordingCounter(counters, publication.sessionId());
final long recordingId = RecordingPos.getRecordingId(counters, counterId);
代码示例来源:origin: real-logic/aeron
Publication publication = aeron.addPublication(RECORDING_CHANNEL, RECORDING_STREAM_ID))
final CountersReader counters = aeron.countersReader();
final int counterId = getRecordingCounterId(publication.sessionId(), counters);
final long recordingId = RecordingPos.getRecordingId(counters, counterId);
内容来源于网络,如有侵权,请联系作者删除!