use of com.github.shyiko.mysql.binlog.event.XidEventData in project SpinalTap by airbnb.
the class MysqlSource method toBinlogEvent.
public static BinlogEvent toBinlogEvent(Event event, BinlogFilePos filePos) {
EventHeaderV4 header = event.getHeader();
EventType eventType = header.getEventType();
long serverId = header.getServerId();
long timestamp = header.getTimestamp();
if (EventType.isWrite(eventType)) {
WriteRowsEventData data = event.getData();
return new WriteEvent(data.getTableId(), serverId, timestamp, filePos, data.getRows());
} else if (EventType.isUpdate(eventType)) {
UpdateRowsEventData data = event.getData();
return new UpdateEvent(data.getTableId(), serverId, timestamp, filePos, data.getRows());
} else if (EventType.isDelete(eventType)) {
DeleteRowsEventData data = event.getData();
return new DeleteEvent(data.getTableId(), serverId, timestamp, filePos, data.getRows());
} else {
switch(eventType) {
case TABLE_MAP:
TableMapEventData tableMapData = event.getData();
return new TableMapEvent(tableMapData.getTableId(), serverId, timestamp, filePos, tableMapData.getDatabase(), tableMapData.getTable(), tableMapData.getColumnTypes());
case XID:
XidEventData xidData = event.getData();
return new XidEvent(serverId, timestamp, filePos, xidData.getXid());
case QUERY:
QueryEventData queryData = event.getData();
return new QueryEvent(serverId, timestamp, filePos, queryData.getDatabase(), queryData.getSql());
case FORMAT_DESCRIPTION:
return new StartEvent(serverId, timestamp, filePos);
default:
return null;
}
}
}
use of com.github.shyiko.mysql.binlog.event.XidEventData in project rocketmq-externals by apache.
the class EventProcessor method processXidEvent.
private void processXidEvent(Event event) {
EventHeaderV4 header = event.getHeader();
XidEventData data = event.getData();
String binlogFilename = binaryLogClient.getBinlogFilename();
Long position = header.getNextPosition();
Long xid = data.getXid();
BinlogPosition binlogPosition = new BinlogPosition(binlogFilename, position);
transaction.setNextBinlogPosition(binlogPosition);
transaction.setXid(xid);
replicator.commit(transaction, true);
transaction = new Transaction(config);
}
Aggregations