powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Очень длинный коннекшн к удаленной базе
25 сообщений из 70, страница 2 из 3
Очень длинный коннекшн к удаленной базе
    #37625406
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvPetro123

______________________________________________
Leonidv - вы в игноре 11906276 , 11910058 . Просьба

модератора не флеймить 11932977
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625409
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaЧито? Вы предлагаете одну одновременно выполняющаяся транзакция или один одновременный запрос к базе на выборку?
Я бы не то что ломался, а просто пристрелил бы вас на месте или выслал бы за вами киллера в Россию, тут достаточно как вам выше уже указали ввести пул соединений, чтобы коннекшн не открывался при каждом запросе, а брался готовый из пула, ну и когда база слишком уж удалена от сервера приложений это тоже не гуд, нужно с этим что-то в дальнейшем делать, например вводить WEB сервисы, потому как JDBC некошерно себя ведёт когда СУБД далеко от сервера приложений.
Читай внимательнее. Речь идет о переделке архитектуры под пул запросов.

P.S. Россия? - Упаси боже!
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625420
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vimba,
ВАС тянет на офттоп.
- сколько байт тратит сервер на коннект?
В моей конфигурации PostgreSQL я выделяю 8 мегабайт на коннект.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625434
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckvimbaЧито? Вы предлагаете одну одновременно выполняющаяся транзакция или один одновременный запрос к базе на выборку?
Я бы не то что ломался, а просто пристрелил бы вас на месте или выслал бы за вами киллера в Россию, тут достаточно как вам выше уже указали ввести пул соединений, чтобы коннекшн не открывался при каждом запросе, а брался готовый из пула, ну и когда база слишком уж удалена от сервера приложений это тоже не гуд, нужно с этим что-то в дальнейшем делать, например вводить WEB сервисы, потому как JDBC некошерно себя ведёт когда СУБД далеко от сервера приложений.
Читай внимательнее. Речь идет о переделке архитектуры под пул запросов.

О какой такой переделке архитектуры идёт речь? Я В ШОКЕ! Согласно DRY у вас должен быть только один метод на все приложение открывающий коннекшн, переписать один метод это пять-десять минут не более, Если кто-то до Вас набыдлокодил и загнал вас в ситуацию когда код взятия коннекшена размазан по всему приложению, то я конечно вам сочуствую но у вас нет другого выхода, кроме как отрефакторить негативно сложившуюся ситуацию.

Есть еще вариант по пределыванию всевозможных костылей: Например косяки архитектуры связанные с отсутсвием пула на уровне приложения в PostgreSQL можно легко подправить через PgBouncer уверен что для других баз существуют аналогичные средства борьбы с нерадивыми разработчиками. Конечно производительность будет слегка проигрывать по сравнению с решением использования пула непосредственно в приложении, но если деваться некуда то и такие костыли дадут весомый прирост в производительности по сравнению с открытием нового соединения под каждый запрос.

IDVsbruckP.S. Россия? - Упаси боже!
Зря вы так, в рашке наверно даже школьник из восьмого бэ не станет открывать каждый раз коннекшн а воспользуется пулом.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625443
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba ,
вот флудер, так флудер.
авторDatabase Resident Connection Pooling (DRCP) provides a connection pool of dedicated servers for typical Web application scenarios. A Web application typically makes a database connection, uses the connection briefly, and then releases it. Through DRCP, the database can scale to tens of thousands of simultaneous connections.
http://docs.oracle.com/cd/E11882_01/server.112/e10713/dist_pro.htm#CNCPT1896
http://docs.oracle.com/cd/E11882_01/server.112/e10595/manproc002.htm#BABFCIEE
Почему бы твой оффтоп не перенести?
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625446
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaсредства борьбы с нерадивыми разработчиками.
а ты сам разработчик? HelloWorld напишешь?
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625460
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vimbaсредства борьбы с нерадивыми разработчиками.
а ты сам разработчик? HelloWorld напишешь?
Код: sql
1.
<window title="Hi Petro!123">


Такой хеловорлд на фреймворке ZK в зачёт пойдёт?

Непонятно с чем ты споришь и в чем смысл твоих нападок? Пул в приложении не делают только ламеры(в веб приложении естественно, десктоп отдельная история). Если ты не согласен то тебе прямая дорога воевать с ORACLE, Microsoft, IBM, Redhat, иди и обосновывай им какие они идиоты, потому что мне тебе сказать нечего.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625463
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 vimba ,
Почему бы твой оффтоп не перенести?
Почему оффтоп, я по крайней мере намекнул автору, что есть решения и без переписывания кода, такое как всторить балансировщик между реальным сервером БД и сервером приложений, при этом балансировщик будет вести себя как обычная БД и не потребует переписывания кода, помоему такого решения в этой теме еще не было поэтому оффтопом его не считаю.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625472
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba,
разве я спорю? Я против выражений беспредельщика: - "говнокод, ламеры" и т.д. Не зная проекта автора.
Сейчас ты разделил весь IT на веб и не веб. Завтра ты увидишь другие оттенки.
ЗЫ
Hello не пойдёт, пула не вижу.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625474
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 vimba ,
http://docs.oracle.com/cd/E11882_01/server.112/e10713/dist_pro.htm#CNCPT1896
http://docs.oracle.com/cd/E11882_01/server.112/e10595/manproc002.htm#BABFCIEE
Почему бы твой оффтоп не перенести?
Что ты хочешь сказать этими ссылками? Изъятие коннекшена из спсика находящемся на той же машине быстрее чет отправка запроса на подключения в балансер, при том что нужно еще учесть факт, что в случае балансера все данные будут проходить через третье звено(балансер), которое в случае пула встренного в приложение не нужно, так что я ничего не понимаю что ты хотел сказать этими ссылками, ведь перфоманс полюбому просядет из-за наличия посредника.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625481
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vimba,
разве я спорю? Я против выражений беспредельщика: - "говнокод, ламеры" и т.д. Не зная проекта автора.
Сейчас ты разделил весь IT на веб и не веб. Завтра ты увидишь другие оттенки.
ЗЫ
Hello не пойдёт, пула не вижу.
Ты его тоже не знаешь поэтому не нужно надрывать свою пятую точку, и наезжать на того кто к тебе ближе географически, это раз. А второе, тот кто в веб не использует пул при соединении с базой это ламер, и я любому объясню почему это так. Хотя конечно средства современных СУБД и позволяют завуалировать последствия его ламерства но не на 100%.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625492
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaЧто ты хочешь сказать этими ссылками?
то что твои слова тут не имею никакого отношения к теме топика и проблеме автора.
Или коротко - OFFTOP. Есть тема для этого - там литература и образы киллера не нужны.
Мне флейм про коня в вакууме неинтересен.
Я прочёл про твой балансировщик.
Удачи !
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625504
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Hello не пойдёт, пула не вижу.
Хорошо тоды так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
import org.springrgframework.dataaccess.JdbcTemplate
<?variable-resolver class="org.zkoss.zkplus.jndi.JndiVariableResolver">
<zk>
<zscript>
    DataSource ds = ${myDatasource};
    JdbcTemplate template = new JdbcTemplate(ds);
    String greating = "Hi" + template.queryForString("select NIK from my_friend where name='petro123'");
</zscript>
<window title="${greating }">
</window>
</zk>



А так в зачет пойдёт? Пул я заюзал, вроде всё необходимое сделал, или ещё будут какие нибудь замечания?
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625506
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vimbaЧто ты хочешь сказать этими ссылками?
то что твои слова тут не имею никакого отношения к теме топика и проблеме автора.
Или коротко - OFFTOP. Есть тема для этого - там литература и образы киллера не нужны.
Мне флейм про коня в вакууме неинтересен.
Я прочёл про твой балансировщик.
Удачи !
Всё ясно у тебя явно батхерт. Как раз таки вся проблемя автора в излишних открытиях соединений там где это не нужно, правильный путь рещения это переписать код чтобы такого беспредела не происходило, менее затратный но проигрывающий в производительности это встроить посередине балансировщик. Что в предидущем предложении:
1 Тебе кажется неконкретным?
2 Не решающим проблему автора? И каково твоё великолепное решение, если ты не согласен c чем-то?
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625509
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba, :)
когда будет флейм про ОРМ, ты скажешь что: "без ОРМ пишут ламеры". Нужен ОРМ.
ЗЫ.
Аффтар - надоест - дай знать.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625510
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba1 Тебе кажется неконкретным?
2 Не решающим проблему автора? И каково твоё великолепное решение, если ты не согласен c чем-то?
перечитай sphinx_mv . Я не виноват. но он мне больше понравился.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625513
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vimba, :)
когда будет флейм про ОРМ, ты скажешь что: "без ОРМ пишут ламеры". Нужен ОРМ.
Нет конкретно в этом случае, дело слишком запутанное чтобы раздавать ярлыки направо и налево, я сам в каждом приложении миксую подход с ORM и без него в зависимости от конкретной ситуации, но вот тот кто начинает что-то писать не прочитав спеку и дело заканчивается фейлом, хотя в спеке всё черным по белому расписанно под определение ламера вполне попадает.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625526
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vimba1 Тебе кажется неконкретным?
2 Не решающим проблему автора? И каково твоё великолепное решение, если ты не согласен c чем-то?
перечитай sphinx_mv . Я не виноват. но он мне больше понравился.
Петя ты вообще в JDBC что нибудь понимаешь? Вникни внимательно в то что предлагает сфинкс:
sphinx_mvЕсли меня не подводит склероз, медитации на тему ODBC Connection Pool (как минимум) вполне может справиться с вашей проблемой по использованию пула соединений не особо ковыряясь в приложении.

Чел предлагает использовать прослойку JDBC/ODBC, которая как снизит перфоманс в связи с тем что возможности родного драйвера от мелкософта не будут задействованы, так и ограничит возможности рамками SunJDBCODBCDriver хотя возможности нативного драйвер написанного мелкософтом намного превосходят его. А это только один момент, второй это то что на linux/unix/solaris нет ODBC, и решение этого трабла приведет к еще одному уровню косвенности. Хотя ты конечно на этом форуме авторитет и тебе выбирать какие решения более оптимальные и масштабируемые, но я с тобой категорически несогласен потому как windows must die.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625527
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaмиксую подход с ORM и без него в зависимости от конкретной ситуации
да я сам удивился увидев у тебя DataSource.
Ладно, пора спать, удачи!
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625545
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckПросто аврал! Очень нужна помощь!

На работающем проекте на одном сервере находятся маленькие веб-проекты - десятка 4 страничек с формами. На другом сервере (в локальной сети) находится база. Все как бы работало нормально.
Но сейчас что-то случилось и коннект к базе происходит секунд 30-60 (был мгновенный). Раньше могло возникнуть иногда исключение типа такого:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Transaction (Process ID 54) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

Но это было достаточно редко и допускаю, что из-за огромного количества параллельных запросов (коннекшн к базе происходит с каждой странички - jsp-шки, а также из сервлетов) - иногда до 20-30 в секунду.
Я их уговарию на переделку проекта - сделать одно соединение с кешем, чтобы через него шли запросы. Но пока ломаются, да и решить проблему надо срочно.

Например, на первой же странице код такой:
Код: java
1.
2.
3.
4.
5.
6.
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection connect = DriverManager.getConnection(Constants.dbline, Constants.dblogin, Constants.dbpass);
Statement statement = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
statement.executeUpdate("UPDATE counters SET zippage=1 WHERE id=(SELECT TOP 1 id FROM counters WHERE sessionid='" + sessionid + "' ORDER BY id DESC)");
statement.close();
connect.close();



В чем может быть дело, подскажите. Ну очень нужно - висим!

1) Про профайлер на далёком сервере - +1.
2) Посмотреть статистику запроса данных/формирования страниц - возможно кто-то жестоко долбиться в твой сервак - соответственно и тормоза....
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625557
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vimba, :)
когда будет флейм про ОРМ, ты скажешь что: "без ОРМ пишут ламеры". Нужен ОРМ.
ЗЫ.
Аффтар - надоест - дай знать.
Даю знать!
Воспользовался советами, пооптимизировал базы, поубирал логи в соответствующих таблицах, поработал с сервером - вроде значительно лучше.
Всем огромное спасибо, вроде проблема отошла ... пока.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625590
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaЧел предлагает использовать прослойку JDBC/ODBC, которая как снизит перфоманс в связи с тем что возможности родного драйвера от мелкософта не будут задействованы, так и ограничит возможности рамками SunJDBCODBCDriver хотя возможности нативного драйвер написанного мелкософтом намного превосходят его. А это только один момент, второй это то что на linux/unix/solaris нет ODBC, и решение этого трабла приведет к еще одному уровню косвенности. Хотя ты конечно на этом форуме авторитет и тебе выбирать какие решения более оптимальные и масштабируемые, но я с тобой категорически несогласен потому как windows must die.
Слов-то умных сколько! И я все еще не придумал, что лучше - плакать мне в этом месте или смеяться?
Вот, новость узнал - оказывается, ODBC под linux'ом не существует! О, как! Наверное, google меня обманывает (вместе с парой-тройкой запущенных у меня "автоматов" под линухом)... Пойду, покурю в сторонке что-нибудь отсюда - http://www.unixodbc.org/ Желания присоединиться не возникло?

"Снижение перформанса" - это СУПЕР! Сколько десятых/сотых процента добавится на каждый запрос (для запросов с веба)?
Особеннно, с учетом того, что у ТС вообще, мягко говоря, катастрофическая ситуация...

Ну, а по поводу, что кто-то/что-то там "мастдай" (и это с учетом того, что задача-то с MSSQL работает) - выше всяких похвал!
Я, конечно, понимаю, что переписать работающее рабочее приложение для "крутых програмеров", да еще и перевести его полностью на другую платформу - нефиг делать за полчаса...
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625682
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,

Я бы оптимизировал запрос. Вхере с сабселектом - вещь очень тормознутая. Используй конструкцию UPDATE ... FROM. Шустродействие может повыситься очень существенно. Это даже не в разы, а на порядки.
А насчёт коннектов - не бери в голову. Так вэб устроен, что каждая страница формируется со своим коннектом. Здесь уж никуда не денешься. Но! Если использовать "родной" JDBC от майкрософта, то, скорее всего, каждый новый коннект будет браться из пула соединений именно по строке коннекта.
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625690
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeЕсли использовать "родной" JDBC от майкрософта, то, скорее всего, каждый новый коннект будет браться из пула соединений именно по строке коннекта.
было такое, когда с сиквелом работал и надо было выключить по ТЗ
Код: java
1.
connect.ConnectionString = "Data Source=MmySERV;database=MyBase;User ID=Sa;Password=123456789;Pooling=False"
...
Рейтинг: 0 / 0
Очень длинный коннекшн к удаленной базе
    #37625691
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. если запросы идут друг за другом, то MS не напрягается и не грохает коннект при закрытии соединения. При повторном коннекте он берёт из пулинга.
...
Рейтинг: 0 / 0
25 сообщений из 70, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Очень длинный коннекшн к удаленной базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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