tx.h
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:4k
源码类别:

中间件编程

开发平台:

Java

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2008, Red Hat, Inc., and others contributors as indicated
  4.  * by the @authors tag. All rights reserved.
  5.  * See the copyright.txt in the distribution for a
  6.  * full listing of individual contributors.
  7.  * This copyrighted material is made available to anyone wishing to use,
  8.  * modify, copy, or redistribute it subject to the terms and conditions
  9.  * of the GNU Lesser General Public License, v. 2.1.
  10.  * This program is distributed in the hope that it will be useful, but WITHOUT A
  11.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  13.  * You should have received a copy of the GNU Lesser General Public License,
  14.  * v.2.1 along with this distribution; if not, write to the Free Software
  15.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16.  * MA  02110-1301, USA.
  17.  */
  18. #ifndef TX_H
  19. #define TX_H
  20. #include "atmiBrokerTxMacro.h"
  21. #include "xa.h"
  22. #define TX_NOT_SUPPORTED   1   /* normal execution */
  23. #define TX_OK              0   /* normal execution */
  24. #define TX_OUTSIDE        -1   /* application is in an RM local
  25.                                   transaction */
  26. #define TX_ROLLBACK       -2   /* transaction was rolled back */
  27. #define TX_MIXED          -3   /* transaction was partially committed
  28.                                   and partially rolled back */
  29. #define TX_HAZARD         -4   /* transaction may have been partially
  30.                                   committed and partially rolled back*/
  31. #define TX_PROTOCOL_ERROR -5   /* routine invoked in an improper
  32.                                   context */
  33. #define TX_ERROR          -6   /* transient error */
  34. #define TX_FAIL           -7   /* fatal error */
  35. #define TX_EINVAL         -8   /* invalid arguments were given */
  36. #define TX_COMMITTED      -9   /* the transaction was heuristically
  37.                                   committed */
  38. #define TX_NO_BEGIN       -100 /* transaction committed plus new
  39.                                   transaction could not be started */
  40. #define TX_ROLLBACK_NO_BEGIN (TX_ROLLBACK+TX_NO_BEGIN)
  41. /* transaction rollback plus new
  42.  transaction could not be started */
  43. #define TX_MIXED_NO_BEGIN (TX_MIXED+TX_NO_BEGIN)
  44. /* mixed plus transaction could not
  45.  be started */
  46. #define TX_HAZARD_NO_BEGIN (TX_HAZARD+TX_NO_BEGIN)
  47. /* hazard plus transaction could not
  48.  be started */
  49. #define TX_COMMITTED_NO_BEGIN (TX_COMMITTED+TX_NO_BEGIN)
  50. /* heuristically committed plus
  51.  transaction could not be started */
  52. /*
  53.  * Definitions for tx_*() routines
  54.  */
  55. /* commit return values */
  56. typedef long COMMIT_RETURN;
  57. #define TX_COMMIT_COMPLETED 0
  58. #define TX_COMMIT_DECISION_LOGGED 1
  59. /* transaction control values */
  60. typedef long TRANSACTION_CONTROL;
  61. #define TX_UNCHAINED 0
  62. #define TX_CHAINED 1
  63. /* type of transaction timeouts */
  64. typedef long TRANSACTION_TIMEOUT;
  65. /* transaction state values */
  66. typedef long TRANSACTION_STATE;
  67. #define TX_ACTIVE 0
  68. #define TX_TIMEOUT_ROLLBACK_ONLY 1
  69. #define TX_ROLLBACK_ONLY 2
  70. /* structure populated by tx_info() */
  71. struct tx_info_t {
  72.  XID                 xid;
  73.  COMMIT_RETURN       when_return;
  74.  TRANSACTION_CONTROL transaction_control;
  75.  TRANSACTION_TIMEOUT transaction_timeout;
  76.  TRANSACTION_STATE   transaction_state;
  77. };
  78. typedef struct tx_info_t TXINFO;
  79. #ifdef __cplusplus
  80. extern "C" {
  81. #endif
  82. extern BLACKTIE_TX_DLL int tx_begin(void);
  83. extern BLACKTIE_TX_DLL int tx_close(void);
  84. extern BLACKTIE_TX_DLL int tx_commit(void);
  85. extern BLACKTIE_TX_DLL int tx_open(void);
  86. extern BLACKTIE_TX_DLL int tx_rollback(void);
  87. extern BLACKTIE_TX_DLL int tx_set_commit_return(COMMIT_RETURN);
  88. extern BLACKTIE_TX_DLL int tx_set_transaction_control(TRANSACTION_CONTROL control);
  89. extern BLACKTIE_TX_DLL int tx_set_transaction_timeout(TRANSACTION_TIMEOUT timeout);
  90. extern BLACKTIE_TX_DLL int tx_info(TXINFO *);
  91. #ifdef __cplusplus
  92. }
  93. #endif
  94. #endif // END TX_H