JNDI, DBCP, JDBC и MySQL на примерах [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JNDI, DBCP, JDBC и MySQL на примерах [закрыто]

Сообщение Anonymous »

Я пытаюсь:
  • Считать источник данных MySQL из JNDI
  • Использовать этот источник данных JNDI для настроить пул соединений DBCP, а также мое соединение JDBC.
  • Запустить оператор SQL с использованием JDBC.
  • Вежливо закрыть (разблокировать соединение обратно в пул, закрыть что-нибудь еще и т. д.)
Этот код будет запускаться много (это простая система журналирования для приложения), и все, что может оставаться открытым при нескольких выполнениях SQL, желательно оставить открытым (чтобы уменьшить накладные расходы на открытие/закрытие и т. д.).
Вот моя лучшая попытка:

Код: Выделить всё

    try {
// 1. Obtain the dbLogger datasource from JNDI.
Context context = new InitialContext();
DataSource logDatabaseDS = (DataSource)context.lookup(logDatabaseJNDI);

// 2. Configure the connection pool with my JNDI datasource.
// HOW?

// 3. Obtain a connection from the pool.
// HOW?

// 4. Use this connection to fire a JDBC INSERT.
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("urlFromJNDI",
"userFromJNDI", "passwordFromJNDI");

PreparedStatement statement = conn.prepareStatement(InsertSQL);
statement.setString(1, appName);
statement.setLong(2, timestamp);
statement.setString(3, logLevel);

statement.executeUpdate();

// 5. Release the borrowed connection back to the pool.
// HOW?
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
Я полагаю, что основные настройки выполнены правильно. Просто не уверен в следующем:
  • Как настроить пул DBCP с использованием свойств, заданных JNDI (таких как maxIdle, maxWait и т. д.). )
  • Эффективно заимствовать соединение из пула DBCP (чтобы этот код мог запускаться десятки/сотни раз в секунду и не терять ресурсы)
    < li>Вставьте URL-адрес строки подключения, имя пользователя и пароль из источника данных JNDI в метод DriverManager.getConnection(...)
  • Вежливо/правильно освободить соединение обратно в пул.
И, если я неправильно настроил этот процесс, сначала поправьте меня в общем подходе!

Подробнее здесь: https://stackoverflow.com/questions/175 ... by-example
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»