[ https://issues.apache.org/jira/browse/FLINK-22141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17322248#comment-17322248 ]
Yuan Mei commented on FLINK-22141: ---------------------------------- Please check PGXAConnection source code here: https://github.com/pgjdbc/pgjdbc/blob/master/pgjdbc/src/main/java/org/postgresql/xa/PGXAConnection.java {code:java} private void commitPrepared(Xid xid) throws XAException { try { // Check preconditions. The connection mustn't be used for another // other XA or local transaction, or the COMMIT PREPARED command // would mess it up. if (state != State.IDLE || conn.getTransactionState() != TransactionState.IDLE) { throw new PGXAException( GT.tr("Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}", xid, currentXid, state, conn.getTransactionState()), XAException.XAER_RMERR); } {code} > Manually test exactly-once JDBC sink > ------------------------------------ > > Key: FLINK-22141 > URL: https://issues.apache.org/jira/browse/FLINK-22141 > Project: Flink > Issue Type: Test > Components: Connectors / JDBC > Reporter: Roman Khachatryan > Assignee: Yuan Mei > Priority: Blocker > Labels: pull-request-available, release-testing > Fix For: 1.13.0 > > > In FLINK-15578, an API and its implementation were added to JDBC connector to > support exactly-once semantics for sinks. The implementation uses JDBC XA > transactions. > The scope of this task is to make sure: > # The feature is well-documented > # The API is reasonably easy to use > # The implementation works as expected > ## normal case: database is updated on checkpointing > ## failure and recovery case: no duplicates inserted, no records skipped > ## several DBs: postgressql, mssql, oracle (mysql has a known issue: > FLINK-21743) > ## concurrent checkpoints > 1, DoP > 1 > # Logging is meaningful -- This message was sent by Atlassian Jira (v8.3.4#803005)