Пул соединения с базой данных JBoss

  1. Используйте JSON.stringify для преобразования ваших объектов в строки
  2. Примените .toLowerCase к полученным строкам так, чтобы все (включая все значения) становится строчными
  3. Преобразование обратно в объект или массив с помощью JSON.parse
  4. Примените остальную логику сопоставления с помощью Array.some и [ 115]
  5. const words = ['WORD1', 'WORD2', 'WORD3'];
    const texts = [
        {name: 'blah', description: 'word4'},
        {name: 'blah2', description: 'word1'},
        {name: 'blah3', description: 'word5'}
    ];
    
    const lower = x => JSON.parse(JSON.stringify(x).toLowerCase());
    const [lowerWords, lowerTexts] = [words, texts].map(lower);
    
    console.log(
      lowerTexts.some(
        ({ description }) => lowerWords.includes(description)
      )
    )
7
задан Salman A. Kagzi 5 May 2009 в 06:33
поделиться

2 ответа

Пул в JBoss все обрабатывается в конфигурации источника данных. Здесь - HowTo. Веб-приложение должно было бы выполнить поиск JNDI для источника данных, чтобы получить соединение с базой данных, а не делать прямой URL-адрес JDBC, и тогда у вас будет пул.

Транзакции - это еще одна история.

РЕДАКТИРОВАТЬ: В ответ на ваш комментарий о том, как это влияет на код, он выглядит следующим образом:

String jndiPath = "java:DataSourceJNDIName"; //The exact prefix here has a lot to do with clustering, etc., but if you are using one JBoss instance standalone, this works.
Context ctx = new InitialContext();
DataSource ds = (DataSource) PortableRemoteObject.narrow(ctx.lookup(jndiPath), DataSource.class);
Connection c = ds.getConnection();

Технически говоря, PortableRemoteObject.narrow не является необходимым в конфигурации с одним сервером JBoss (4.2.2 в любом случае) наверняка, но это более правильно Стандартный код J2EE, поскольку общие серверы приложений не чтобы сделать Context.lookup, нужно возвращать объект правильного типа.

Вышеприведенное не охватывает вопросы использования ресурсов и обработки ошибок. Предполагается, что вы закроете этот объект Context, когда закончите, и, конечно, соединение с базой данных, хотя JBoss будет кричать на вас, если вы забудете закрыть соединение с базой данных, и транзакция завершится, и закроет его для вас.

В любом случае, этот объект Connection можно использовать так же, как DriverManager.getConnection (url);

8
ответ дан 6 December 2019 в 10:03
поделиться

Вам не нужно ничего менять. Когда вы выбираете правильный тип источника данных (local-tx-datasource / xa-datasource), обработка соединения и TX выполняется для вас. В $ JBoss / docs / examples / jca вы найдете шаблоны практически для каждой базы данных, которые вы можете просто использовать повторно.

Если вы используете XA, вам нужно настроить Tx-recovery. Посмотрите эту публикацию с практическими рекомендациями: http://management-platform.blogspot.com/2008/11/transaction-recovery-in-jbossas.html (ну, возможно, не с практическими рекомендациями в автономном режиме, но в сочетании с Jopr исходный код).

1
ответ дан 6 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: