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

- 涉及使用以下场景的特性需要配合将JDBC驱动进行升级。对于非透明多写特性，需要升级到503.1及以上的配套版本。
  1. 全密态内存解密逃生通道。
  
  2. 通过JDBC使用record、array、tableof嵌套自定义类型。
  
  3. 开启s2兼容性参数，设置sessiontimezone的合法性校验。
   
- 旧版本驱动连接新版本数据库的情况下，若涉及新特性可能导致异常行为，建议驱动和数据库使用配套版本。
- 开启M兼容端口后才可以进行应用程序连接。设置M兼容端口的步骤请参考[修改M兼容端口](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_519.html)。
- 在多线程环境下使用驱动：JDBC驱动程序非线程安全，不建议在多线程环境下同时使用同一连接实例。由调用者同步对驱动程序的调用。
 
