В одном из моих вопросов, заданных ранее, я узнал, что DriverManagerDataSource
is NOT предназначенный для использования в производстве. Поэтому я изменил свою конфигурацию. Я знаю, что я использую ГСБД, который также устарел и много других пулов соединений доступны как HIkariCP и BOneCP ноКак проверить, установлен ли пул подключений в весеннем веб-приложении MVC?
Я желаю, чтобы понять способ, как проверить, что пул был настроен или нет?
На поиски много я получил некоторый ответ по следующей ссылке
How would you test a Connection Pool
, но я не получил способ проверки программно. Также я не могу отлаживать файлы jar, используемые для пула соединений, поскольку исходный код недоступен. Я не знаю, почему, но я не могу изменить свои баночки по официальным причинам.
Следующая моя конфигурация (OLD и NEW)
OLD
<bean id="webLogicXADataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="#[csa.db.driver]" />
<property name="url" value="#[csa.db.url]" />
<property name="username" value="#[csa.db.username]" />
<property name="password" value="#[csa.db.password]" />
</bean>
NEW Использование пула соединений ДБХП
<bean id="webLogicXADataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="#[csa.db.driver]" />
<property name="url" value="#[csa.db.url]" />
<property name="username" value="#[csa.db.username]" />
<property name="password" value="#[csa.db.password]" />
</bean>
ДРУГОЕ ЭЛЕМЕНТЫ: (До сих пор я держал их так же, как они были раньше)
Место держатель
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:${DB_PROPERTIES}</value>
</list>
</property>
<property name="placeholderPrefix" value="#[" />
<property name="placeholderSuffix" value="]" />
</bean>
Менеджер транзакций
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="webLogicXADataSource" />
<qualifier value="inventoryTxManager"/>
</bean>
DAOIMP L ОБРАЗЕЦ БИН
<bean id="inventoryDao"
class="com.lxnx.fab.ce.icce.inventoryRoutingInvoice.dao.InventoryDaoImpl">
<property name="dataSource" ref="webLogicXADataSource" />
<property name="transactionManager" ref="transactionManager" />
Сейчас все классы DAO в моем проекте не синглтон (не комплект прототипа свойства для любого из бобов)
Ниже приведен пример Java код класс DAOImpl.java, где мне нужно сделать все операции:
DAOImpl.java
public class InventoryDaoImpl implements InventoryDao {
private final static ISmLog iSmLog = Instrumentation
.getSmLog(LNConstants.SYSTEM_LOG_NAME);
private JdbcTemplate jdbcTemplate;
private DataSource dataSource;
private PlatformTransactionManager transactionManager;
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
this.dataSource = dataSource;
}
public void setTransactionManager(
PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
@Transactional private void insertRelatedInfoData(
InventoryModel inventoryModel) {
final List<String> relatedLniList = inventoryModel.getArrRelatedLni();
final String documentLni = inventoryModel.getDocumentLNI();
String sql = "INSERT INTO SCSMD_REPO.INV_RELATED_INFO(LNI, RELATED_LNI) VALUES(?,?)";
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
String relatedLni = relatedLniList.get(i);
ps.setString(1, documentLni);
ps.setString(2, relatedLni);
}
@Override
public int getBatchSize() {
return relatedLniList.size();
}
});
}
}
У меня нет ошибок. Просто хотел проверить Если пул был настроен, U хочет проверить то же самое
Все конфигурации в порядке или я что-то пропустил? Пожалуйста, помогите мне с вашими ценными ответами.спасибо
Источником данных, который вы используете, является пул соединений, поэтому он настроен. –
@ M.Deinum Эй. Не могли бы вы рассказать мне, как я могу проверить то же самое в режиме реального времени? –
Пожалуйста, проверьте журналы для вашего приложения. Пул соединений будет загружен при загрузке менеджера баз данных. – KayV