Tomcat上下文中的MySQL JDBC连接URL参数

时间:2011-10-13 14:01:59

标签: java mysql jdbc connection-string

有人可以指点一些关于这个JDBC URL实际意味着附加的参数列表的资源吗?

谢谢!

<Context>
<Resource 
name="jdbc/DB" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
username="user" password="password" 
maxActive="20" 
maxIdle="5" 
url="jdbc:mysql://192.168.0.10:3306,192.168.0.11:3306/testDB?
    autoReconnect=true&amp
    failOverReadOnly=false&amp
    maxReconnects=2&amp
    initialTimeout=2&amp
    connectTimeout=2000&amp 
    socketTimeout=2000&amp
    useLocalSessionState=true&amp
    paranoid=true&amp"
/>
</Context>

2 个答案:

答案 0 :(得分:4)

连接/验证

connectTimeout = 2000表示最多等待2秒才能建立连接。默认为不超时。

socketTimeout = 2000表示等待网络套接字操作最多2秒。

Performance Extensions

useLocalSessionState = true告诉驱动程序引用由协议维护的Connection.setAutoCommit()和Connection.setTransactionIsolation()以及事务状态设置的自动提交和事务隔离的内部值而不是查询数据库或盲目地向数据库发送命令以进行commit()或rollback()方法调用。

偏执狂 = true采取措施防止错误消息中的敏感信息泄露,并在可能的情况下清除保存敏感数据的数据结构。

高可用性和群集。

autoReconnect = true告诉驱动程序尝试重新建立陈旧和/或死连接。对于属于当前事务的陈旧或死连接上发出的任何查询,驱动程序将抛出异​​常,但会在新事务中的连接上发出下一个查询之前尝试重新连接。启用此功能不推荐,因为当应用程序无法正确处理SQLExceptions时,它会产生与会话状态和数据一致性相关的副作用,并且仅在您无法配置时使用您的应用程序正确处理死亡和过时连接导致的SQLExceptions。或者,作为最后一个选项,研究设置MySQL服务器变量&#34; wait_timeout&#34;高价值,而不是默认的8小时。

以下仅适用于启用自动重新连接模式的情况。

failOverReadOnly = false表示在故障转移时不要将连接设为只读。

maxReconnects = 2要尝试的最大重新连接次数,默认为&#39; 3&#39;。

initialTimeout = 2重新连接尝试之间等待的初始时间。默认2

请参阅http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html

答案 1 :(得分:1)