2012-05-01 1 views
0

Добрый день, может быть, кто-то может пролить некоторый свет или, по крайней мере, указать мне в сторону, чтобы выяснить, почему приложение PowerBuilder 9 приведет к открытию 100-х соединений базы данных в нашей базе данных SQL-сервера ,PowerBuilder 9, видя 100 процессов SQL на пользователя

фон

Наша организация недавно приобрела другую компанию, основное приложение построено с использованием PowerBuilder 9 сидит на верхней части базы данных SQL Server 2008 R2. Пользователи этого приложения регистрируются в базе данных, используя свои учетные данные домена, и их примерно 15-20 активных пользователей. Мы видели, что в любой момент времени эти 15-20 пользователей могут иметь 100 соединений/процессов, запущенных в базе данных SQL Server.

Пример

Вчера, например, было около 530 +/- соединения с базой данных от этих пользователей. При выполнении запроса в таблице sys.sysprocesses я вижу, что все соединения имеют статус «спящий» и значение cmd «AWAITING COMMAND».

Мы не уверены в том, что это связано с тем, что разработчик не открывает и закрывает соединения правильно, или если это нормально для приложения PowerBuilder 9.

Любая информация была бы полезна и ценилась. Заранее спасибо.

+0

Очень рекомендую разбить этот кирпичный текст, чтобы сделать его более читаемым ... – JNK

+0

Только что отредактировал текст, спасибо за предложение – mreyeros

+0

Можно ли перенести приложение на более новую версию PowerBuilder? Проблема, с которой вы столкнулись, возможно, уже была рассмотрена в более новой версии. – Bernard

ответ

0

Кажется, вы хотите получить ответ, который предложит PowerBuilder сделать что-то очень глупо. Извините, вы не получите его в этом случае, я не думаю. Как и любой инструмент, вы можете сделать приложение PowerBuilder много чего. Если - это - архитектура, к которой привязана природа и инфраструктура PowerBuilder, это однопоточное одноединое приложение.

I может сделать приложение многопоточным и подключиться к каждому потоку (потоки не могут совместно использовать соединение) ,

I может сделать приложение подключаться к базе данных 1000 раз, но это будет означать выход за пределы встроенного единого объекта глобального соединения и создание 1000 новых соединений. Это немного более очевидно, как делать, чем многопоточность, но я должен был бы спросить, почему кто-то программировал это?

Вот еще одна мысль: если это приложение существует примерно с 2003 года (выпуск PB9), почему это просто сейчас? Одно из предложений заключается в том, что, возможно, это соответствие с движком СУБД, который вышел через несколько лет? Я знаю людей, которые успешно использовали версию PowerBuilder с более поздним движком СУБД, но тогда вполне возможно, что вы наткнулись на что-то несовместимое, что не было предсказуемым на момент разработки PB9.

Я был бы удивлен, если бы на вашем следующем этапе не было много трассировки, пытаясь выяснить, что происходит. SQL Server обладает отличными инструментами отслеживания. У PowerBuilder есть свои ability to trace database connections, и хотя они не так элегантны, они довольно точны в описании того, что PowerBuilder «бросает через стену» в клиентское программное обеспечение СУБД и возвращается.

Удача,

Terry.

+0

«Вам кажется, что вы хотите получить ответ, который предложит PowerBuilder сделать что-то очень глупо» Ни в коем случае мой вопрос не задавался с этим намерением. Как кто-то, кто никогда не подвергался воздействию PowerBuilder, я хотел задать здесь вопрос в надежде, что кто-то, более опытный в этой среде разработки, может указать мне в правильном направлении. – mreyeros

+0

Причина, по которой это происходит сейчас, как указано, это приложение было унаследовано после приобретения компании. Это была небольшая «мама и поп-среда» с одним одиноким разработчиком, единственная забота которой заключалась в том, чтобы заставить работать. Внимание не было уделено тому, как приложение выполняло базу данных, по крайней мере, соединение. Задав вопрос разработчику, его ответ заключался в том, что он никогда не занимался проверкой соединений, потому что он просто работал, и тогда он спросил меня, что это действительно проблема, которую нужно решить. – mreyeros

 Смежные вопросы

  • Нет связанных вопросов^_^