
# 开发规范
如果用户在APP的开发过程中，使用了连接池机制，那么需要遵循如下规范：
- 如果在连接中设置了GUC参数，那么在将连接归还连接池之前，必须使用以下语句将连接的状态清空。
  ```
  SET SESSION AUTHORIZATION DEFAULT;
  RESET ALL;
  ```
  
- 如果使用了临时表，那么在将连接归还连接池之前，必须将临时表删除。
否则，连接池里面的连接就是有状态的，会对用户后续使用连接池进行操作的正确性带来影响。
应用程序开发驱动兼容性说明如[表1]所示。
 表1兼容性说明 
| 驱动                              | 兼容性说明                                |
|:---|:---|
| JDBC、Go、ODBC、libpq、Psycopg、ecpg | 驱动前向兼容数据库，若需使用驱动与数据库同步增加的新特性，须升级数据库。 |
   
![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
- 原则上，兼容性参数应在创建数据库后就设置，不应在使用过程中来回切换。
- 涉及使用以下场景的特性需要配合将JDBC驱动进行升级。对于非透明多写特性，需要升级到503.1及以上的配套版本。
  1. 通过JDBC使用record、array、tableof嵌套自定义类型。
  
  2. 开启s2兼容性参数，设置sessiontimezone的合法性校验。
   
- 旧版本驱动连接新版本数据库的情况下，若涉及新特性可能导致异常行为，建议驱动和数据库使用配套版本。
- 在多线程环境下使用驱动：JDBC驱动程序线程不是安全的，无法保证连接上的方法同步。由调用者来同步对驱动程序的调用。
 
