
# 开发规范
如果用户在APP的开发过程中，使用了连接池机制，那么需要遵循如下规范：
- 如果在连接中设置了GUC参数，那么在将连接归还连接池之前，必须使用"SET SESSION AUTHORIZATION DEFAULT;RESET ALL;"将连接的状态清空。
- 如果使用了临时表，那么在将连接归还连接池之前，必须将临时表删除。
 
否则，连接池里面的连接就是有状态的，会对用户后续使用连接池进行操作的正确性带来影响。
应用程序开发驱动兼容性说明如[表1]所示。
 表1兼容性说明 
| 驱动                              | 兼容性说明                                |
|:---|:---|
| JDBC、Go、ODBC、libpq、Psycopg、ecpg | 驱动前向兼容数据库，若需使用驱动与数据库同步增加的新特性，须升级数据库。 |
   
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
- behavior_compat_options='proc_outparam_override' 重载参数仅在A兼容模式可用。

- 原则上，兼容性参数应在创建数据库后就设置，不应在使用过程中来回切换。
- 涉及使用以下场景的特性需要配合将JDBC驱动升级到503.1.0及以上的配套版本。
  1. 全密态内存解密逃生通道。
  
  2. 通过JDBC使用record、array、tableof嵌套自定义类型。
  
  3. 开启s2兼容性参数，设置sessiontimezone的合法性校验。
   
- 老版本驱动连接新版本数据库的情况下，若涉及新特性可能导致异常行为，建议驱动和数据库使用配套版本。
 
在多线程环境下使用驱动：
JDBC驱动程序线程不是安全的，无法保证连接上的方法同步。由调用者同步对驱动程序的调用。
