有人可以指点一些关于这个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&
failOverReadOnly=false&
maxReconnects=2&
initialTimeout=2&
connectTimeout=2000&
socketTimeout=2000&
useLocalSessionState=true&
paranoid=true&"
/>
</Context>
答案 0 :(得分:4)
connectTimeout = 2000表示最多等待2秒才能建立连接。默认为不超时。
socketTimeout = 2000表示等待网络套接字操作最多2秒。
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)