Search in sources :

Example 1 with Pair

use of com.alibaba.otter.canal.protocol.CanalEntry.Pair in project canal by alibaba.

the class BaseCanalClientTest method printXAInfo.

protected void printXAInfo(List<Pair> pairs) {
    if (pairs == null) {
        return;
    }
    String xaType = null;
    String xaXid = null;
    for (Pair pair : pairs) {
        String key = pair.getKey();
        if (StringUtils.endsWithIgnoreCase(key, "XA_TYPE")) {
            xaType = pair.getValue();
        } else if (StringUtils.endsWithIgnoreCase(key, "XA_XID")) {
            xaXid = pair.getValue();
        }
    }
    if (xaType != null && xaXid != null) {
        logger.info(" ------> " + xaType + " " + xaXid);
    }
}
Also used : Pair(com.alibaba.otter.canal.protocol.CanalEntry.Pair)

Example 2 with Pair

use of com.alibaba.otter.canal.protocol.CanalEntry.Pair in project canal by alibaba.

the class LogEventConvert method createHeader.

private Header createHeader(LogHeader logHeader, String schemaName, String tableName, EventType eventType, Integer rowsCount) {
    // header会做信息冗余,方便以后做检索或者过滤
    Header.Builder headerBuilder = Header.newBuilder();
    headerBuilder.setVersion(version);
    headerBuilder.setLogfileName(logHeader.getLogFileName());
    // 记录的是该binlog的start offest
    headerBuilder.setLogfileOffset(logHeader.getLogPos() - logHeader.getEventLen());
    headerBuilder.setServerId(logHeader.getServerId());
    // 经过java输出后所有的编码为unicode
    headerBuilder.setServerenCode(UTF_8);
    headerBuilder.setExecuteTime(logHeader.getWhen() * 1000L);
    headerBuilder.setSourceType(Type.MYSQL);
    if (eventType != null) {
        headerBuilder.setEventType(eventType);
    }
    if (schemaName != null) {
        headerBuilder.setSchemaName(schemaName);
    }
    if (tableName != null) {
        headerBuilder.setTableName(tableName);
    }
    headerBuilder.setEventLength(logHeader.getEventLen());
    // enable gtid position
    if (StringUtils.isNotEmpty(logHeader.getGtidSetStr())) {
        headerBuilder.setGtid(logHeader.getGtidSetStr());
    }
    // add current gtid
    if (StringUtils.isNotEmpty(logHeader.getCurrentGtid())) {
        Pair pair = createSpecialPair("curtGtid", logHeader.getCurrentGtid());
        headerBuilder.addProps(pair);
    }
    // add current gtid sequence no
    if (StringUtils.isNotEmpty(logHeader.getCurrentGtidSn())) {
        Pair pair = createSpecialPair("curtGtidSn", logHeader.getCurrentGtidSn());
        headerBuilder.addProps(pair);
    }
    // add current gtid last committed
    if (StringUtils.isNotEmpty(logHeader.getCurrentGtidLastCommit())) {
        Pair pair = createSpecialPair("curtGtidLct", logHeader.getCurrentGtidLastCommit());
        headerBuilder.addProps(pair);
    }
    // add rowsCount suppport
    if (rowsCount > 0) {
        Pair pair = createSpecialPair("rowsCount", String.valueOf(rowsCount));
        headerBuilder.addProps(pair);
    }
    return headerBuilder.build();
}
Also used : Header(com.alibaba.otter.canal.protocol.CanalEntry.Header) LogHeader(com.taobao.tddl.dbsync.binlog.event.LogHeader) Pair(com.alibaba.otter.canal.protocol.CanalEntry.Pair)

Example 3 with Pair

use of com.alibaba.otter.canal.protocol.CanalEntry.Pair in project canal by alibaba.

the class MysqlDumpTest method printXAInfo.

private void printXAInfo(List<Pair> pairs) {
    if (pairs == null) {
        return;
    }
    String xaType = null;
    String xaXid = null;
    for (Pair pair : pairs) {
        String key = pair.getKey();
        if (StringUtils.endsWithIgnoreCase(key, "XA_TYPE")) {
            xaType = pair.getValue();
        } else if (StringUtils.endsWithIgnoreCase(key, "XA_XID")) {
            xaXid = pair.getValue();
        }
    }
    if (xaType != null && xaXid != null) {
        System.out.println(" ------> " + xaType + " " + xaXid);
    }
}
Also used : Pair(com.alibaba.otter.canal.protocol.CanalEntry.Pair)

Aggregations

Pair (com.alibaba.otter.canal.protocol.CanalEntry.Pair)3 Header (com.alibaba.otter.canal.protocol.CanalEntry.Header)1 LogHeader (com.taobao.tddl.dbsync.binlog.event.LogHeader)1