How to use two phase commit for data validation?

I have tried one experiment -
Sequence is -
a) Ran Two application which has used cdb_subscribe2 api with CDB_SUB_RUNNING_TWOPHASE.
b) from CLI or netconf Client changed a node value
c) Both application connects to cdb with two connections
1) cdb_session_start2 with CDB_PRE_COMMIT_RUNNING to get old data
2) cdb_session_start2 with CDB_RUNNING to get new data.

c) On receipt of CDB_SUB_PREPARE, 1 application call cdb_sub_abort_trans (due to some data validation fail) and one application call cdb_sync_subscription_socket.

Result:
After step C, CLI got hanged. netconf client replied timedout.

Is it the limitation of ConfD basic or we can’t use two phase commit subscribe as mentioned above for validation and aborting the transaction.

Do you see any issue in devel.log? After abort is issued, the already notified other subscribers (subscription points) have to handle CDB_SUB_ABORT subscription notification type. Do you correctly handle this subscription type?
See description of cdb_subscribe2 function in ConfD user guide or man pages.

Yes after handling cdb_sub_abort problem was resolved.
do we have any way to omit handling of cdb_sub_abort?

This depends on logic of your application. Generally already processed subscriptions should perform abort, when one subscription fails.