powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / help ! jboss+mysql пул
25 сообщений из 55, страница 1 из 3
help ! jboss+mysql пул
    #34750710
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возникла такая проблема, я уже и не знаю чего делать ибо вроде всё посмотрела:

К БД подключаюсь приложением через пул потоков, в придожении 3 класса реализующие подключение к бд. Через админ. консоль видно, что есть свободные пулы БД,(СУБД и war лежат на одном сервере) когда клиента запускаю со своей машины (т е удалённо) всё ок используются старые пулы, если
запускаю с того же сервера на котором всё это добро лежит то создаётся 1 новый , и берётся 1 старый.

Вопрос такой: в каких случаях создаётся новый пул ?(через админ консоль видно что существующие пулы не используются!)


я задолбалась уже =(((
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751088
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно то же самое изложить ортодоксальной терминологией с общепринятой семантикой

и перестанте долбаться
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751193
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подключаюсь так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
/**
 * Created by IntelliJ IDEA.
 * User: Gerda
 * Date: 13.08.2007
 * Time: 16:47:14
 * To change this template use File | Settings | File Templates.
 */
 package  com.bcc.vasp.admin;

 import  org.apache.log4j.Logger;

 import  javax.naming.Context;
 import  javax.naming.InitialContext;
 import  javax.naming.NamingException;
 import  javax.sql.DataSource;
 import  java.sql.*;

 public   class  DBAdmin {

    DataSource pool;
     private   static   final  Logger LOG = Logger.getLogger("DBAdmin");
     public  DBAdmin(){

        LOG.debug("DBAdmin start");
        Context env =  null ;
       


         try {

            env = (Context)  new  InitialContext().lookup("java:comp/env");
          
            pool = (DataSource) env.lookup("jdbc/MessageBD");
           
            
             if (pool ==  null ){
                LOG.error("jdbc/MessageBD is an unknown DataSource");
            }

        }  catch  (Exception ne){
            LOG.error("error: ");
            ne.printStackTrace();
        }
    }


    
     public   boolean  setNewUser(String clientId){
        LOG.debug("setNewUser start");
        Connection conn = null ;
        PreparedStatement pstmt =  null ;
        ResultSet rs =  null ;
        ResultSetMetaData rsm =  null ;
         try {
            

            conn = pool.getConnection();
            
            pstmt = conn.prepareStatement("insert into messageRep(clientId,messageType, messageValue,received) value(?,?,NULL,true);");
           
            
            pstmt.setString( 1 ,clientId);
            pstmt.setString( 2 ,"DATA");
            
            pstmt.addBatch();
           
            pstmt.executeUpdate();

            pstmt.setString( 1 ,clientId);
            pstmt.setString( 2 ,"CLIENT");
            pstmt.addBatch();
            

             pstmt.executeUpdate();
             
          
        } catch (Exception ex){
            LOG.error("error");
            ex.printStackTrace();
             try  {
                conn.close();
                 this .finalize();
            }  catch  (Throwable throwable) {
                LOG.error("conn.finalize()");
            }
            LOG.debug("setNewUser fin");
             return  false;

        }
         try  {
            conn.close();
             this .finalize();
        }  catch  (Throwable throwable) {
            LOG.error("conn.finalize()");
        }
        LOG.debug("setNewUser fin");
         return  true;
     }
      public   boolean  clearUser(String clientId){
         Connection conn = null ;
        LOG.debug("clearUser start");
        String sql ="Delete from messageRep where clientId = \""+clientId+"\";";

        Statement stmt =  null ;
        ResultSet rs =  null ;
        ResultSetMetaData rsm =  null ;
         try {
            conn = pool.getConnection();
            stmt = conn.createStatement();
           
            stmt.executeUpdate(sql);
           
        } catch (Exception ex){
            LOG.error("error");
            ex.printStackTrace();
             try  {
                conn.close();
                 this .finalize();
            }  catch  (Throwable throwable) {
                LOG.error("conn.finalize()");
            }
            LOG.debug("clearUser fin");
             return  false;

        }
        
         try  {
                conn.close();
                 this .finalize();
            }  catch  (Throwable throwable) {
                LOG.error("conn.finalize()");
            }
         LOG.debug("clearUser fin");
         return  true;
     }



         protected   void  finalize()  throws  Throwable {
                 super .finalize();

     }

}
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751202
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас отвратительный подход к работе как с connection'ами, так и в общем.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751227
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
=((
а по подробней ?



PS Ошибку нашла.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751233
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, метод clearUser у меня выглядел бы вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
     public   void  clearUser (String clientId)
    {

         try  {
            DBQuery query =  new  DBQuery();
             try  {
                query.prepare("delete from messageRep where clientId = ?");
                query.addString(clientId);

                query.executeUpdate();
            }  finally  {
                query.close();
            }

        }  catch  (SQLException sql) {
             throw   new  EJBException(sql);
        }

    }

Ну а если по существу — если вы уверены, что во время работы этих методов не возникает ошибок при закрытии коннекта, то не парьтесь — пусть JBoss сам решает, как управлять коннектами.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751276
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не парится не могу , ибо без this.finalize(); коннекты пладились очень быстро , что не есть хорошо т к при превышении мак допустимого количества одновременных соединений всё летит .. и спасает только перезапуск jboss.

проблема осталась, =(( подключение к БД не куда не деваются
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751280
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerdaSне парится не могу , ибо без this.finalize(); коннекты пладились очень быстро , что не есть хорошо т к при превышении мак допустимого количества одновременных соединений всё летит .. и спасает только перезапуск jboss.

проблема осталась, =(( подключение к БД не куда не деваются
Не трогайте метод finalize. Вы всё-равно не знаете, для чего он придуман и когда может вызываться.
Каково максимальное число разрешенных соединений в Jboss'е?
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751286
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы АБСОЛЮТНО уверены, что ошибок не возникает? Почему вы не выдаете наружу EJBException, при возникновении ошибок? Зачем вы по-тихому какаете в лог?
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751297
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сейчас 10.
число критично тк планируется оч большое число одновременных подключений , по этому надо точно знать сколько подключений возникает при работе приложения по логике их не больше 3 , а они растут растут и всё рушится =\
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751315
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До закрытия коннекта надо открытые стейтменты закрывать, а то как раз таки исключение и вылетит (они держат коннект), которое Вы никак не обрабатываете, по сути. И зачем трогать финализатор?
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751322
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрюхрюшкин.Вы АБСОЛЮТНО уверены, что ошибок не возникает? Почему вы не выдаете наружу EJBException, при возникновении ошибок? Зачем вы по-тихому какаете в лог?

1) если ошибка возникнет то в логе отобразится (почему то не сомневаюсь )сие:
LOG.error("error: ");
в консоле можно будет посмотреть подробней

ne.printStackTrace();
вот от сюда:
} catch (Exception ne){
LOG.error("error: ");
ne.printStackTrace();
}

2) EJBException не получится выдать т к это не EJB , а сервлет + pojo
3) Читала, что накакать в лог будет этичней , чем вывалить на пользователя
эксепшен
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751331
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PassingByДо закрытия коннекта надо открытые стейтменты закрывать, а то как раз таки исключение и вылетит (они держат коннект), которое Вы никак не обрабатываете, по сути. И зачем трогать финализатор?

хм хм . что бы убить всё.

=))
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751339
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PassingByДо закрытия коннекта надо открытые стейтменты закрывать, а то как раз таки исключение и вылетит (они держат коннект), которое Вы никак не обрабатываете, по сути. И зачем трогать финализатор?
+1
Я уже отвык на это обращать внимание :) Привык к хорошему
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751367
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerdaS
1) если ошибка возникнет то в логе отобразится (почему то не сомневаюсь )сие:
LOG.error("error: ");
в консоле можно будет посмотреть подробней

ne.printStackTrace();
вот от сюда:
} catch (Exception ne){
LOG.error("error: ");
ne.printStackTrace();
}

2) EJBException не получится выдать т к это не EJB , а сервлет + pojo
3) Читала, что накакать в лог будет этичней , чем вывалить на пользователя
эксепшен
1) Ну, если вы видите в логе все свои отладочные сообщения и не настроили при возникновении ошибок какать в другой лог — тогда да.
2) Ммм, опять дурацкая привычка... Выдавайте ServletException либо какой-то еще, который система поймет без дополнительных телодвижений.
3) Это зависит от... В нормальной ситуации ошибок подобных вашей быть в принципе не должно, я правильно понимаю? Соответственно, если ошибка произошла — что-то пошло вразнос и лучше это сразу узнать. У вас ведь не интернет, а корпоратив?
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751369
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerdaS PassingByДо закрытия коннекта надо открытые стейтменты закрывать, а то как раз таки исключение и вылетит (они держат коннект), которое Вы никак не обрабатываете, по сути. И зачем трогать финализатор?

хм хм . что бы убить всё.

=))
Когда придет время — оно само всё убьется.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751394
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрюхрюшкин. GerdaS
1) если ошибка возникнет то в логе отобразится (почему то не сомневаюсь )сие:
LOG.error("error: ");
в консоле можно будет посмотреть подробней

ne.printStackTrace();
вот от сюда:
} catch (Exception ne){
LOG.error("error: ");
ne.printStackTrace();
}

2) EJBException не получится выдать т к это не EJB , а сервлет + pojo
3) Читала, что накакать в лог будет этичней , чем вывалить на пользователя
эксепшен
1) Ну, если вы видите в логе все свои отладочные сообщения и не настроили при возникновении ошибок какать в другой лог — тогда да.
2) Ммм, опять дурацкая привычка... Выдавайте ServletException либо какой-то еще, который система поймет без дополнительных телодвижений.
3) Это зависит от... В нормальной ситуации ошибок подобных вашей быть в принципе не должно, я правильно понимаю? Соответственно, если ошибка произошла — что-то пошло вразнос и лучше это сразу узнать. У вас ведь не интернет, а корпоратив?
1) Да
2) Это не дурачкая пивычка, а "по корпоративным обстоятельствам" тут я бессильна, пока
3)Инет , при чём там браузер "особый" , не буду в подробности вдаватся, но не очень будет красиво если что то вывалится
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751396
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerdaS PassingByДо закрытия коннекта надо открытые стейтменты закрывать, а то как раз таки исключение и вылетит (они держат коннект), которое Вы никак не обрабатываете, по сути. И зачем трогать финализатор?

хм хм . что бы убить всё.

=))

Финализатор вообще-то мало что убивает. Он вообще не всегда вызывается и трогать его крайне не рекомендуется ввиду бесполезности. Возможно, больший успех принесет вызов gc в цикле (это шутка, не делайте этого). Просто закрывайте все, что открыли в том же методе и будет вам щастье (тм). Все - это в данном случае любой созданный экземпляр ResultSet, Statement, PreparedStatement и самого Connection. Кстати, executeUpdate() надо вызывать после последнего addBatch() или вообще addBatch() не трогать.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751401
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрюхрюшкин. GerdaS PassingByДо закрытия коннекта надо открытые стейтменты закрывать, а то как раз таки исключение и вылетит (они держат коннект), которое Вы никак не обрабатываете, по сути. И зачем трогать финализатор?

хм хм . что бы убить всё.

=))
Когда придет время — оно само всё убьется.

если 5 000 польз. по 3 подключения на каждое приложение, кол -во подключений разрастается, (ждём пока jm сама всё почистит) , разрастается и .... ппревеД
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751407
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerdaS

Код: plaintext
1.
2.
pstmt.addBatch();
pstmt.executeUpdate();

Бессмысленный порядок методов.
Либо addBatch / executeBatch, либо executeUpdate
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751418
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerdaS
если 5 000 польз. по 3 подключения на каждое приложение, кол -во подключений разрастается, (ждём пока jm сама всё почистит) , разрастается и .... ппревеД
Вы просто не понимаете, что вы говорите.
Подключение должно закрыться и быть отдано в пул в момент вызова
Код: plaintext
conn.close();
.
Если этого не происходит — ищите у себя ошибку. Её вам уже указали и не раз.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751419
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PassingBy GerdaS PassingByДо закрытия коннекта надо открытые стейтменты закрывать, а то как раз таки исключение и вылетит (они держат коннект), которое Вы никак не обрабатываете, по сути. И зачем трогать финализатор?

хм хм . что бы убить всё.

=))

Финализатор вообще-то мало что убивает. Он вообще не всегда вызывается и трогать его крайне не рекомендуется ввиду бесполезности. Возможно, больший успех принесет вызов gc в цикле (это шутка, не делайте этого). Просто закрывайте все, что открыли в том же методе и будет вам щастье (тм). Все - это в данном случае любой созданный экземпляр ResultSet, Statement, PreparedStatement и самого Connection. Кстати, executeUpdate() надо вызывать после последнего addBatch() или вообще addBatch() не трогать.

в данном случае убил, то что не убилось conn.Close
=\
PassingBy
Кстати, executeUpdate() надо вызывать после последнего addBatch() или вообще addBatch() не трогать.
если после последнего, то то что было вместо ?? ранее добавленно не срабатвает, выполняется только последний запрос ..
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751422
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerdaS
Милая девушка. Откройте книжку и внимательно-внимательно перечитайте concepts языка Java, потом concepts технологии J2EE, потом документацию JBoss.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751423
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В языке Java прочитайте про все моменты, включая технологию работы с JDBC.
...
Рейтинг: 0 / 0
help ! jboss+mysql пул
    #34751424
GerdaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сейчас перепишу =))) .. в поисках счастья... Не ругайтесь сильно, я не так, что бы давно в java
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / help ! jboss+mysql пул
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]