É possível criar aplicativos CMP para examinar e reproduzir os dados que foram gravados e armazenados usando gravação e reprodução.
Leia o tópico de conceito Gravar e Reproduzir.
Para obter informações adicionais sobre esses objetos e como utilizá-los, consulte o CMP API.
BrokerProxy bp = null;
try {
BrokerProxy.enableAdministrationAPITracing("C:\\AdminTrace.txt");
bp = BrokerProxy.getLocalInstance("WEB");
ExecutionGroupProxy eg = bp.getExecutionGroupByName("default");
Properties newFilterProps = new Properties();
newFilterProps.setProperty(DataCaptureEntry.PROPERTY_BROKER_NAME, "WEB");
DataCaptureEntry filterMessage = new DataCaptureEntry(newFilterProps);
DataCaptureProxy dcp = eg.getDataCapture("MYDATA", filterMessage);
String output = dcp.getDataCaptureEntryAsXml(1);
System.out.println("XML output: "+output);
int messNo = 0;
Enumeration <DataCaptureEntry> dceE = dcp.elements();
while (dceE.hasMoreElements()) {
DataCaptureEntry dce = dceE.nextElement();
System.out.print("\nMessage: "+messNo++);
Properties props = dce.getAllProperties();
String[] columns = dce.getPropertyNames();
for (int i = 0; i < columns.length; i++) {
System.out.print("\nProperty: "+columns[i]+ " Value: "+props.getProperty(columns[i]));
}
}
} catch (ConfigManagerProxyLoggedException e) {
e.printStackTrace();
} catch (ConfigManagerProxyPropertyNotInitializedException e) {
e.printStackTrace();
} finally {
if(bp != null) {
bp.disconnect();
}
}
O exemplo a seguir mostra como reproduzir dados.
BrokerProxy brokerProxy = null;
try {
// DataCaptureStore contendo a mensagem a ser reproduzida
String dataCaptureStore = "MyStore";
// ID da mensagem a ser reproduzida
String replayMsgId = "0123456789ABCDEF";
// DataDestination para onde reproduzir a mensagem
String dataDestination = "ReplayDestination";
// Grupo de execução a reproduzir
String replayEG = "MyExecutionGroupName";
Properties dataCaptureProps = new Properties();
// Configure a mensagem a ser reproduzida
dataCaptureProps.setProperty(DataCaptureEntry.PROPERTY_WMBMSG_KEY, replayMsgId);
// Configure o destino de reprodução
dataCaptureProps.setProperty(AttributeConstants.DATACAPTURE_REPLAY, dataDestination);
DataCaptureEntry dataCaptureEntry = new DataCaptureEntry(dataCaptureProps );
brokerProxy = WebAdminBrokerProxy.getLocalInstance("MB8BROKER");
ExecutionGroupProxy egProxy = brokerProxy.getExecutionGroupByName(replayEG);
// Submeta a solicitação ao grupo de execução para realmente fazer a reprodução
DataCaptureProxy dataCaptureProxy = egProxy.getDataCapture(dataCaptureStore, dataCaptureEntry);
dataCaptureProxy.hasBeenPopulatedByBroker(true);
String responseBody = dataCaptureProxy.getDataCaptureEntryAsXml(1);
} catch(Exception e) {
// TODO: Handle Exception
} finally {
if (brokerProxy != null) {
brokerProxy.disconnect();
}
}