(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 

Конференция "Sybase"

Обсуждение вопросов, связанных с компанией Sybase, ее продуктами Adaptive Server, PowerBuilder, PowerDesigner, SQL Anywhere и др.

 
 
Добавить сообщение »

Тема: EAServer. Создание независимых потоков на EAServer

Автор:  fdssdsfdsfds Дата: 29.07.2012 18:20
[открыть ссылку] поисковое продвижение [/url] [url=[открыть ссылку] поисковое продвижение [/url] <a href="http://XN-CTBBHDDAGMFCP1CDCBCJIUN.XN-P1AI"> поисковое продвижение </a> <a href="http://поисковое-продвижение.рф"> поисковое продвижение </a>
Ответить на сообщение »
 
Автор:  Artem Дата: 26.09.2006 15:24
Столкнулся с проблемой:-
Есть jsp которая вызывает метод addTask статического класса TaskManager:

TaskManager.getInstance().addTask(session.getAttribute("log").toString(), request.getParameter("sTask").toString(), par_str);

Этот метод добавляет в массив (хранящийся в памяти EAS) строку с параметрами,
необходимую для выполнения хранимой на sql-сервере процедуры, а затем вызывает конструктор класса
LogicTasksExecute:

new LogicTasksExecute(Login, dTime, sTask, sParams);

В конструкторе класса LogicTasksExecute идет проверка параметра sTask:

public LogicTasksExecute(String Login, long Time, String sTask, String ParametersForm) {
this.Login = Login;
this.Time = Time;
this.sTask = sTask;
if (sTask.equalsIgnoreCase("miHelp")) miHelp(ParametersForm);
if (sTask.equalsIgnoreCase("miMiscViewOemF")) miMiscViewOemF(ParametersForm);
if (sTask.equalsIgnoreCase("miGetVersion")) miGetVersion(ParametersForm);
}

и после вызывается соответствующий метод, в котором создается экземпляр класса RunTasks,
инициализирующего поток для выполнения экзека sql-процедуры:

private void miHelp(String ParametersForm) {
new RunTasks(Login, Time, sTask, "exec aMenusNameNotPmid", ParametersForm);
}

Конструктор класса RunTasks выглядит так:

public RunTasks(String Login, long Time, String sTask, String StringExecuteProc, String Params) {
this.NameThread = Login + sTask + Time;
this.Time = Time;
this.Login = Login;
this.sTask = sTask;
this.StringExecuteProc = StringExecuteProc;
this.Params = Params;
new Thread(this, NameThread).start();
}

В методе run() класса RunTasks создается коннект к sql-серверу через
ConnectionCaches EAS-а и запускается экзэк процедуры. После этого меняются значения
полей на конкретную задачу в статическом массиве (устанавливается статус "Выполнено", время выполнения и т.д.).

Метод run() класса RunTasks выглядит так:

public void runn() {
Connection connection = null;
try {
connection = MainSQLRequests.getConnection();
statement = connection.createStatement();
AllDatasetResult = GetTable(StringExecuteProc);
} catch (Exception ex) { }

for (int i = 0; i<( (ArrayList) TaskManager.getInstance().TaskList.get(Login)).size();i++) {
if ( ( (ArrayList) ( (ArrayList) TaskManager.getInstance().TaskList.get(Login)).get(i)).get(3).equals(new Long(Time))) {
//устанавливаем время завершения работы процедуры
( (ArrayList) ( (ArrayList) TaskManager.getInstance().TaskList.get(Login)).get(i)).set(3,new Long( (System.currentTimeMillis() - Time)));
//устанавливаем статус "Выполнено - 1"
( (ArrayList) ( (ArrayList) TaskManager.getInstance().TaskList.get(Login)).get(i)).set(2, new Integer(1));
}
}
//для построения отчета
new CreateReportInFile(getHashtable(), sTask, Params);
}

Для построения отчета по выполненной процедуре выполненной процедуре вызывается конструктор класса
CreateReportInFile:

public CreateReportInFile(Hashtable TableDataSet, String sTask, String Params) {
if (sTask.equalsIgnoreCase("miHelp")) miHelp(TableDataSet, Params);
if (sTask.equalsIgnoreCase("miMiscViewOemF")) miMiscViewOemF(TableDataSet, Params);
if (sTask.equalsIgnoreCase("miGetVersion")) miGetVersion(TableDataSet, Params);
}

public void miHelp(Hashtable TableDataSet, String Params) {
// System.out.println();
}


При создании нового потока падает служба Jaguar EAS-а.
EAS в свой лог пишет следующее:

180908-Thread::threadData: tml_keydata_get() failed
180908-Thread::threadData: tml_keydata_get() failed
180908-Thread::threadData: tml_keydata_get() failed

Скажите пожалуйста, почему падает служба, и
подскажите как правильно организовать старт потока
для выполнения экзэка sql-процедуры?
Ответить на сообщение »
 

Добавить сообщение »

 Распечатать »
 Правила публикации »
   
 Рекомендовать »  
 

Магазин программного обеспечения   WWW.ITSHOP.RU
SmartBear QAComplete Concurrent User Subscription License - On Premise (1 Year Subscription)
Антивирус ESET NOD32 SMALL Business Pack newsale for 5 user. Электронный ключ
Microsoft SQL Server Standard Edition 2017 Sngl OLP 1License NoLevel
Microsoft Office 365 Бизнес премиум. Подписка на 1 рабочее место на 1 год
CorelDRAW Graphics Suite 2018 Upgrade. Электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Реестр Windows. Секреты работы на компьютере
СУБД Oracle "с нуля"
Corel DRAW - от идеи до реализации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Sybase ASA 9, выполнение запроса из командной строки (2)
Передаю подготовленный SQl запрос в ISQL через командную строку таким образом dbisql.exe -c...
 
Третий Международный ERP-форум (3)
Третий Международный ERP-форум, организованный порталом CFO-Russia.ru и Клубом финансовых...
 
EAServer. Создание независимых потоков на EAServer (2)
Столкнулся с проблемой:- Есть jsp которая вызывает метод addTask статического класса...
 
Вакансия: DBA Sybase, Москва (2)
Крупная международная инвестиционная компания DBA Sybase Требования к кандидатам: -...
 
Медленное выполнение простых запросов на Sybasy IQ 15.1 (1)
При выполнении следущих скриптов было замечено: DECLARE LOCAL TEMPORARY TABLE table1(...
 
 
 



    
rambler's top100 Rambler's Top100