Я думаю, что мне нужно немного лучше понять концепцию пула соединений.Я работаю в java с ConnectorJ и развертываю свой сервлет на сервере Apache Tomcat.Я следил за документом, поэтому мой Tomcat context.xml выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="">
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver"
maxActive="-1" maxIdle="30"
maxWait="10000" minEvictableIdleTimeMillis="1200000" name="jdbc/MySQLDB"
removeAbandoned="true" removeAbandonedTimeout="1200" timeBetweenEvictionRunsMillis="60000"
type="javax.sql.DataSource" url="jdbc:mysql://my_host"
username="my_username" password="my_password"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" />
</Context>
И я получаю соединение из источника данных, используя рекомендованный способ:
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQLDB");
Connection conn = null;
try {
conn = ds.getConnection();
// Do query etc.
// Close connection, statement and result set if applicable
}
catch (SQLException){
// Handle exception here
}
Мой вопросявляется: почему я должен указать пользователя и пароль для моего источника данных в context.xml.Поправьте меня, если я ошибаюсь, но я подумал, что смысл пула соединений заключается в том, чтобы повторно использовать соединения, которые имеют одну и ту же строку соединения?
Я хочу иметь возможность иметь дело с несколькими различными входами (скажем, сервлет получаетучетные данные БД для использования через HTTP), но если мне нужно определить разные источники данных для каждого возможного соединения, не противоречит ли это точке пула соединений?