Конфигурирование источника данных и его регистрация в JNDI - PullRequest
0 голосов
/ 01 января 2019

Я проверяю java doc java doc для источника данных.

Я не понимаю приведенный ниже фрагмент кода.

Я создаю connectionpooldatasource и регистрируюсь в jndi.

cpds.setServerName("creamer");
cpds.setDatabaseName("COFFEEBREAK");
cpds.setPortNumber(9040);
cpds.setDescription("Connection pooling for " + "COFFEEBREAK DBMS");

Context ctx = new InitialContext();
ctx.bind("jdbc/pool/fastCoffeeDB", cpds);

Теперь мы можем получить этот источник данных пула соединений

Context ctx = new InitialContext();
ctx.lookup("jdbc/pool/fastCoffeeDB");

Я создаю другой источник данных и регистрирую его.

com.applogic.PooledDataSource ds = new 
com.applogic.PooledDataSource();
ds.setDescription("produces pooled connections to COFFEEBREAK");
ds.setDataSourceName("jdbc/pool/fastCoffeeDB");

Context ctx = new InitialContext();
ctx.bind("jdbc/fastCoffeeDB", ds);

Теперь мы можем получить этоисточник данных пула соединений

ctx = new InitialContext();
ds = (DataSource)ctx.lookup("jdbc/fastCoffeeDB");

Я не совсем уверен насчет setDataSourceName.

Мы добавляем ConnectionPoolDS в PoolDataSource.

при извлечении источника данных

 ds = (DataSource)ctx.lookup("jdbc/fastCoffeeDB");

тогда откуда возвращаются данные, это тип PoolDataSource или тип ConnectionPoolDS?.

1 Ответ

0 голосов
/ 01 января 2019

используя эту

jdbc / pool / fastCoffeeDB JNDI, которую вы прямо указываете на базу данных COFFEEBREAK.

во второй JNDI

jdbc/ fastCoffeeDB

вы используете следующий оператор

ds.setDataSourceName ("jdbc / pool / fastCoffeeDB");

В приведенном выше вы указываете старое имя JNDIэто означает, что вы косвенно указываете на базу данных COFFEEBREAK

, поэтому из оператора ds = (DataSource) ctx.lookup ("jdbc / fastCoffeeDB");вы получите ConnectionPoolDS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...